问题标签 [cgcontextdrawimage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
90 浏览

ios - 创建可伸缩路径 CGContextPath

我是 iOS 开发新手。

使用 Core Graphics/UIKit 绘制时出现问题。我想在 Window 中实现类似绘制形状的功能。

我使用这个来源:https ://github.com/JagCesar/Simple-Paint-App-iOS ,并添加新功能。

当 touchesMoved 时,我根据 touchesBegan 时的点和当前的触摸点绘制一个形状。它绘制了所有的形状。

我的意思是,我只想创建一个形状,当touchesBegan时,应用程序记录点,当touchesMoved时,形状被触摸缩放,当touchesEnd时,将形状绘制到ImageContex

希望你能给我一些建议。谢谢你。

0 投票
0 回答
541 浏览

ios - iOS 在大 UIView 上绘制多个小图像的最佳方法

我有一个非常非常大UIViewCATiledLayer.

我需要在上面渲染很多小图像。

这些小图像存储在一张大图像 (1024x1024) 中。它们可能具有透明度。

目前,我CGImageCreateWithImageInRect在大图像上使用CGImageRef为我需要的每个小图像创建 s。

后来,在 内drawRect,我根据需要调用CGContextDrawImage(context, rect, smallImage);以显示这些小图像中的每一个。

然而,根据 Instruments 的 Time Profiler,在CGContextDrawImage(274ms) 处存在非常大的瓶颈,我希望尽我所能减少它(不使用 OpenGL)。

我的问题是:如何?是否有CGContextDrawImage不需要缩放的替代方案?是否使用CGImageCreateWithImageInRect正确的方法来解决它?

0 投票
0 回答
1205 浏览

ios - CGContextDrawImage -> ImageIO_Malloc 泄漏

我花了很多时间试图弄清楚为什么我的应用程序中出现 ImageIO 泄漏......如果有人可以帮助我解决这个问题,我将不胜感激!

我有一个 UIPageViewController,其中包含许多带有 2048x1536 图像的 UIViewController。我将 UIImage 直接设置为 view.layer.contents 为最佳。当用户在图像之间滑动时,我将它们懒惰地加载到 bg 线程上,然后缓存它们。我有一个最大的缓存大小,所以在某些时候,当用户继续滑动时,应用程序开始卸载和重新加载图像。一切正常,但如果我开始快速滑动 2 或 3 个周期,我最终会在调用 CGContextDrawImage 时在 ImageIO 内发生内存泄漏。泄漏仪器内部不报告泄漏。我真的不明白为什么会这样。这是我的代码:

...

{ __weak NSOperation* weakRunningOp = [self getRunningOperationWithImagePath:imageFile];

}

这是我的仪器屏幕截图,在某些时候,VM : ImageIO_PNG_Data 以 12mo 分配出现并且永远不会消失。

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
1062 浏览

ios - CGContextDrawImage 扭曲比例

我有一个裁剪图像(mainImage),允许用户在使用手指的基础上进行绘制。屏幕 A. 上的红色锯齿形显示手指绘制的部分。现在,使用下面的代码,新绘制的图像上下文(红色锯齿形)被推入与裁剪图像相同的边界,我最终得到一个扭曲的锯齿形(屏幕截图 B.)。您可以看到红色锯齿形是如何被推入裁剪的边界(mainImage)的。

我想要实现的是一个图像,它结合了 mainImage 和 drawImage 的两个上下文,而不会扭曲任何一张照片的比例。因此,只有与 mainImage 重叠的红色之字形部分将在新的上下文中绘制,如屏幕截图 C 所示。(我想要的结果的 photoshopped 图像)。现在,commitDrawingWithOpacity: 方法的结果是屏幕截图 B。我想要屏幕截图 C 的结果。

我已经尝试过 CGContextClipToRect、CGContextClipToMask,还尝试为绘图图像创建一个新的矩形,但到目前为止还没有成功。我已经在这个问题上困扰了将近一个月(自学),这是我在将我的应用程序提交给苹果之前需要做的最后一件事。因此,我们将不胜感激任何帮助。这是我正在使用的代码的链接https://github.com/dblapps/DAScratchPad

这是每个的大小:

drawImage.size = (width=320, height=568) // iPhone 5 屏幕尺寸

mainImage.size = (width=260, height=800) // 裁剪图像的大小

我的 imageView 设置为宽高比。

使用函数 AVMakeRectWithAspectRatioInsideRect 我已经能够为我的 mainImage 获得正确的大小比,但仍然没有让任何事情正常工作。

在此处输入图像描述

下面是我试图达到的结果的 Photoshop 截图。屏幕截图 B(上图)是我目前的代码所得到的。

在此处输入图像描述

0 投票
1 回答
50 浏览

ios - 无法绘制图像。

我有一个UIImageViewUIViewController想在现有的 imageView 上添加一个简单的图像。

viewDidLoad 方法如下所示:

我收到的部分错误消息如下所示:

CGContextSetBlendMode: invalid context 0x0. This is a serious error.

我测试了重置我的iOS模拟器(其他线程中的解决方案),但这并没有解决问题。

0 投票
1 回答
1156 浏览

ios - 如何旋转 UIImage 但不切割边缘 IOS

帮助,我是 ios 编程新手,我想旋转 UIImage,但我不希望边缘被切割或松开图像的某些部分。

这是我的代码:

图像正在旋转,但框架的大小没有改变,因为某些图像已被剪切。

输出:https ://fbcdn-sphotos-ea.akamaihd.net/hphotos-ak-xpf1/t1.0-9/1555286_761679470521535_1800180000235265553_n.jpg

预期输出:https ://fbcdn-photos-ga.akamaihd.net/hphotos-ak-xfa1/t1.0-0/10314770_761675840521898_6536715783383115855_a.jpg

请帮帮我谢谢。

0 投票
0 回答
236 浏览

ios - 使用 CGContextDrawImage 块中的图像位置错误

我跟着本教程使用 Core Text 绘制文本,我想将 web 图像添加到视图中。当我使用下面的代码时,除了等待下载时间外,一切正常。

正确的效果

但是这段代码阻塞了主线程,当我像这样替换代码时:

它变成有线的,图像的位置是错误的。 错误的效果

0 投票
0 回答
109 浏览

ios - CGContextDrawImage 混合

我正在使用CGContextDrawImageObjective C中的方法绘制,或者我应该说“冲压”图像。图像被绘制到由触摸运动确定的点。基本上,我正在对图像进行标记以创建“画笔”效果。看起来像这样:在此处输入图像描述

我对结果很满意,但是当触摸时间变慢时,图像会被绘制在其自身之上并破坏我想要的 alpha 值。是否有一种混合技术,其中图像的不透明度不会相互叠加?或者我应该只考虑改变我的观点,以便在运动减慢时它们不会那么靠近?

提前致谢。

0 投票
1 回答
42 浏览

ios - 在 UISegmentControl ios 中居中图像和垂直?

所以我试图将图像和文本都插入到UISegmentControl. 现在,segmentControl我希望将图像放在顶部,将文本放在底部。所以我使用 UIImage 上的一个类别将标题放在它上面,如下所示。但是我的图像和经过大量的努力,文本仍然放错了位置。有没有人正确地这样做过?任何帮助表示赞赏。

0 投票
3 回答
1690 浏览

image-processing - iOS 8.1 崩溃(EXC_BAD_ACCESS):: ImageIO: CGImageReadGetBytesAtOffset : *** 错误 *** CGImageSource 是用数据大小创建的:

感谢任何帮助修复我的 iOS 应用程序中的崩溃 (EXC_BAD_ACCESS)。自从使用最新的可用 iOS 8.1.2 将我的应用程序更新到 iOS 8 后,我看到了这一点。相同的代码在 iOS 7.x 中运行良好。

我的应用程序中的一个视图是UICollectionView. 集合视图的每个单元格都显示一个图像,该图像是动态呈现的,并且每隔几分钟就会随着新内容的出现而变化。

单元格的左上角还显示集合视图的该单元格的文本标签/标题。为了确保文本标签可以根据单元格图像的颜色读取,我有一些代码(见下文)来确定单元格左上角的图像颜色。基于该颜色,我使用白色或黑色作为单元格的文本标签/标题(显示在单元格中的图像顶部)。

下面是代码片段。我经常在以下代码行中遇到崩溃 EXC_BAD_ACCESS 崩溃:

CGContextDrawImage(context, CGRectMake(0, 0, 1, 1), imageRef);

Xcode 中显示的错误日志...

: ImageIO: CGImageReadGetBytesAtOffset : * 错误 * CGImageSource 是使用数据大小创建的:684918 - 当前大小仅为:526399

: ImageIO: CGImageReadGetBytesAtOffset : * 错误 * CGImageSource 是使用数据大小创建的:203207 - 当前大小仅为:199641

代码如下,感谢您解决此问题的任何帮助,谢谢。