首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS无损图像编辑

iOS无损图像编辑
EN

Stack Overflow用户
提问于 2013-04-17 05:13:02
回答 2查看 338关注 0票数 2

我正在为iPhone/iPod开发一个照片应用程序。

我希望从iPhone应用程序中的大图像中获取原始数据,并对其执行一些像素操作,并将其写回磁盘/图片库。

到目前为止,我一直在使用以下技术将从图像选择器获得的UIImage转换为无符号char指针:

代码语言:javascript
复制
CGImageRef imageBuff = [imageBuffer CGImage];//imageBuffer is an UIImage *
CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(imageBuff));
unsigned char *input_image = (unsigned char *)CFDataGetBytePtr(pixelData);

//height & width represents the dimensions of the input image

unsigned char *resultant = (unsigned char *)malloc(height*4*width);

for (int i=0; i<height;i++)
{
    for (int j=0; j<4*width; j+=4)
    {
        resultant[i*4*width+4*(j/4)+0] = input_image[i*4*width+4*(j/4)];
        resultant[i*4*width+4*(j/4)+1] = input_image[i*4*width+4*(j/4)+1];
        resultant[i*4*width+4*(j/4)+2] = input_image[i*4*width+4*(j/4)+2];
        resultant[i*4*width+4*(j/4)+3] = 255;
    }
}
CFRelease(pixelData);

我正在对结果执行所有操作,并在原始解析中将其写回磁盘,使用以下方法:

代码语言:javascript
复制
     NSData* data = UIImagePNGRepresentation(image);
    [data writeToFile:path atomically:YES];

我想知道:

  1. 转换实际上是无损的吗?
  2. 如果有一个20-22 MP图像在手边.在后台线程中执行此操作明智吗?(撞车等的机会)我想知道这样做的最佳做法)。
  3. 是否有更好的方法来实现这一点(获取像素数据是必要的)
EN

回答 2

Stack Overflow用户

发布于 2013-04-19 09:35:59

是的,该方法是无损的,但我不确定大约20-22 MP图像。如果我想编辑那些大图片的话,我认为Iphone根本不是一个合适的选择!

票数 1
EN

Stack Overflow用户

发布于 2013-04-25 09:09:22

我已经成功地捕获和编辑图像多达22 MP使用这一技术。

在iPhone 4s上测试了这一点,它运行得很好。但是,我使用的一些效果是必要的核心图像过滤器。CIFilters似乎不支持超过16个MP图像。如果使用在>16 an的图像上,则过滤器将返回空白图像。

我仍然希望人们对iOS中的无损大图像编辑策略进行评论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16052015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档