问题标签 [cgimage]

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 回答
5897 浏览

iphone - iPhone - CGImageCreateWithImageInRect 旋转一些相机胶卷图片

我正在为 iPhone 开发像素化应用程序。因为使用 iPhone 4 相机拍摄的照片太大,因此在更新像素化图片时应用程序运行非常缓慢,我尝试先创建图片的图块,然后只更新图块而不是孔图。

在构建图块时,它适用于以横向模式 (2592 x 1936 像素) 和低分辨率图片拍摄的相机胶卷照片,但不适用于以纵向模式 (1936 x 2592 像素) 拍摄的照片。

从原始图像中切割瓷砖的代码如下所示:

问题是使用这些图块创建的图像逆时针旋转了 90 度角。

非常感谢,安德烈

0 投票
4 回答
2766 浏览

iphone - -[UIImage CGImage] 返回零

我想知道在什么情况下这段代码会在第二个断言中中断。换句话说,什么时候可以-[UIImage CGImage]返回nil?文档在这里不是很能说明问题。

我很确定, UIImage 是正确的,因为它是从应用程序包中获取的。到目前为止,我还无法重现此案例,但我确实看到了一些用户崩溃报告。

0 投票
1 回答
9124 浏览

iphone - iPhone - UIImage imageWithData 返回 nil

我需要从一个字节数组创建一个 UIImage。现在我创建字节数组:

数据变量是一个无符号字符。

这就是我尝试获取 UIImage 的方式:

img (UIImage) 保持为零。

好的,这不是背景:我正在尝试创建一个像素化应用程序:)。来自 iPhone 4 相机的图像尺寸太大,所以我将图像分割成较小的图像。这样做,当需要更新像素化(触摸)区域以显示像素化效果时,我正在更新一个较小的 UIImage。我需要这样做,因为在之前的测试中,它看起来就像 UIImage 的更新正在杀死 CPU。尽管如此,较小的图像现在大约为 80x100 像素,并且更新不是尽可能顺利。有时,如果您快速移动手指,它会错过一些点:D。我认为使用这种方法从字节数组创建 UIImage 比这个更快:

我对么?

0 投票
1 回答
7230 浏览

objective-c - 从 NSData 显示 NSImage

我的目标是在视图中显示图像。考虑到我有一个:

  • IBOutlet NSImageView *image 用于显示我的图像
  • NSData *imageData 用于读取图像文件
  • NSImage *imageView

在 imageData 中存储图像(我使用了 initWithContentsOfFile 方法)。

现在,如果我使用以下命令初始化 imageView:

我可以正确地看到图像的渲染,但是通过这种方式我从文件系统中读取了两次。

如果我尝试:

显示的图像非常小..像拇指

Whit CGImageRef:

图像仍然渲染得太小。

如何以原始分辨率显示图像?

0 投票
5 回答
20813 浏览

iphone - iPhone CGContextRef CGBitmapContextCreate 不支持的参数组合

在我的应用程序中,我需要调整并裁剪一些本地和在线存储的图像。我正在使用Trevor Harmon 的教程,它实现了UIImage+Resize.

在我的 iPhone 4(iOS 4.3.1)上一切正常,我没有问题。但在我的 iPhone 3G (iOS 3.2) 上,调整大小和裁剪方法不适用于任何图片(本地存储的是 PNG)。这是控制台输出:

这是裁剪方法

调整大小的方法是这样的:

有人可以向我解释我遇到这个问题的方式吗?

谢谢你,安德烈

0 投票
1 回答
429 浏览

iphone - 首次加载时 UIImage 口吃

我有一个 UIScrollview,可以通过双击放大和缩小 PNG 图像。按照我的设置方式,我使用 UIGraphicsBeginImageContext/UIGraphicsEndImageContext 创建了几个不同尺寸的 PNG 图像,并将所有 UIImage 存储在 NSMutableArray 中。然后,我通过根据当前缩放级别将 UIImageView 的图像交换为正确的 UIImage 来在屏幕上显示正确的图像(我这样做是为了始终显示一个很好的抗锯齿图像,而不是仅缩放原始图像)。

我遇到的问题是,第一次将图像交换到以前未显示的图像时,会出现轻微的卡顿。第一次以后,我可以放大和缩小一整天,没有卡顿。我已经尝试过这里这里建议的解决方案,但他们没有解决问题。

目前,我找到了一种解决方法,方法是在 0.01 秒后交换图像,同时取消任何挂起的交换请求。这工作正常,但它不是一个可靠的修复。显然,必须有一种方法使图像处于就绪状态,因为它们在第一次显示后就准备好了。请帮我!

0 投票
1 回答
623 浏览

iphone - (iphone) CGImageRef 是 NSObject 吗?c指针?

我想将 CGImageRef 变量传递给 performSelectorOnMainThread
用 valueWithPointer 将它包装在 NSValue 中就足够了吗?

CGImageRef 的类型是什么?
它是c指针的typedef吗?

谢谢

0 投票
3 回答
21891 浏览

iphone - 如何创建空/空白 UIImage 或 CGImage 并在其上操作像素(Xcode)?

我有以下问题,只能部分解决。我正在使用 XCode 3.2.5,为 iOS 4+ 开发。

我只是尝试创建一个预定义大小的图像,在其上操作像素,然后在 UIImageView 中显示该图像。我的视图由连接到的简单按钮和名为“buttonClicked”的 IBAction 和一个名为“qrImage”并设置为“IBOutlet”的 UIImageView 组成。我使用以下代码:

头文件:myClassViewController.h

主文件 myClassViewController.m

我希望代码是完全不言自明的,如果不是这里有一个简短的描述:

A. 在 Button-Click 上,我调用 drawQRImage 方法,它会返回一个 UIImage。B. 在 drawQRImage 我打开一个 PNG 文件,直到现在它的大小为 210x210,只有一个白色背景。没有其他的。然后我操纵它上面的一些像素并“将它们涂成黑色”。当前代码应设置像素 nr。11 黑色。完成后,我返回新创建的图像。C. 然后方法 buttonClicked 将在 UIImageView 中显示此图像。

总而言之其实很简单。它也(几乎)完美地工作。但现在我想进行一些修改,但直到现在才能让它们工作:

  1. 我必须返回的图像并不总是 210x210 像素,所以我必须能够更改大小。加载“空白”PNG文件并操作它的像素是迄今为止我设法开始工作的唯一解决方法。一种更优雅的方法是创建一个具有所需大小的白色 BG 的空白图像,我可以在当前方法中使用它。不幸的是,我还没有找到关于该主题的任何内容。仅在处理现有图像上的像素时。这就是我想出当前解决方法的方式。我已经尝试过从以下链接调整大小的片段:Resizing a UIImage the right way

  2. 按钮可以点击多次,绘制的像素也会发生变化。我现在的问题是,我似乎有内存泄漏,因为我注释掉了这一行

    //CGImageRelease(imageRef);

但是,如果我确实释放了 UIImageRef“imageRef”,再次单击该按钮时会出现 EXC_BAD_ACCESS-Error。所以我知道这意味着我尝试访问一个已经被释放的对象。但是我该如何解决这个问题,我不确定我是否在这里得到了一切。我认为 imageRef 将在方法“drawQRImage”的开头新创建,因此当我再次调用该方法时释放它应该不是问题。但看起来我似乎错了。

感谢您的每一点帮助!

0 投票
1 回答
1896 浏览

iphone - 我可以在 UIImageView 中编辑 UIImage 的 Alpha 掩码而不必移动太多内存吗?

我想拍摄图像(画笔)并将其绘制到显示的图像中。我只想影响该图像的 alpha,稍后需要将其导出。

据我所见,大多数方向只是真正涉及一些看起来成本高昂但没有成功的操作。即,他们建议您绘制到屏幕外上下文中,创建蒙版的 CGImage,并且几乎每次应用画笔时都创建一个 CGImageWithMask。

我已经知道这很昂贵,因为即使只是这样做并绘制到上下文中对于 iPhone 来说也是相当粗糙的。

我想做的是获取 UIImageView 的 UIImage,并直接操作它的 alpha 通道。我也不是逐个像素地进行,而是使用具有自身柔软度的较大(20px 半径)笔刷。

0 投票
1 回答
905 浏览

cocoa - CGCreateImage 中忽略的解码值

我正在使用以下代码创建单色图像:

其中decodeValues是 2 的数组CGFloat,等于{0,1}。这给了我一个很好的图像,但显然我的数据(来自 PDF 图像掩码)是黑白而不是黑白的。为了反转图像,我尝试将值设置decodeValues{1,0},但这根​​本没有改变任何东西。实际上,无论我输入什么无意义的值decodeValues,我都会得到相同的图像。

为什么decodeValues在这里被忽略?如何反转黑白?