- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的应用程序中,我使用相机和照片库来获取 UIImage,
然后将此 UIImage 缩小大约其正常大小的 20 倍然后我根据 UIImage 设置一个 NSData 对象。
_regularImage = [self resizeImage:_takenImage width:100 height:100];
-(UIImage *)resizeImage:(UIImage *)anImage width:(int)width height:(int)height
{
CGImageRef imageRef = [anImage CGImage];
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
if (alphaInfo == kCGImageAlphaNone)
alphaInfo = kCGImageAlphaNoneSkipLast;
CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef), 4 * width, CGImageGetColorSpace(imageRef), alphaInfo);
CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef);
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
UIImage *result = [UIImage imageWithCGImage:ref];
CGContextRelease(bitmap);
CGImageRelease(ref);
return result;
}
NSData *image1Data = UIImageJPEGRepresentation(_regularImage, 1);
我似乎想不出任何其他可能导致这种情况的原因
谢谢
小瑞
最佳答案
这里的问题可能是您以错误的方式创建位图上下文或 UIImage。尝试调试并检查 _regularImage
是否为 nil,或者它是否无效。对于缩放图像,我建议使用名为 ANImageBitmapRep 的第三方库.它是一小组类,允许在 iPhone 上轻松裁剪、调整大小、旋转等图像。缩放 UIImage 可以像这样完成:
ANImageBitmapRep * irep = [ANImageBitmapRep imageBitmapRepWithImage:myImage];
[irep setSize:BMPointMake(myWidth, myHeight)]; // scale the image
UIImage * theImage = [irep image];
[irep release];
NSData * jpeg = UIImageJPEGRepresentation(theImage, 1);
对于这种代码,我怀疑 UIImageJPEGRepresentation
会是问题所在。 ANImageBitmapRep
类本身在内部处理 CGContextRef
内容,使您的工作更加轻松。
关于objective-c - UIImageJPEGRepresentation 给出 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136041/
在iPhone应用程序上,我需要通过邮件发送最大尺寸为300Ko的jpg(我不知道mail.app可以有的最大尺寸,但这是另一个问题)。为此,我尝试降低质量,直到获得低于 300Ko 的图像。 为了获
我正在使用 xcode 9 和 iPhone SE 开发 iOS 应用程序。 我从 iPhone 相册中获取了一张大照片,该照片是 19MB 的 JPEG 图片,格式为 NSData。 然后我需要修复
我有这行代码 UIImageJPEGRepresentation(profileImage, 0.8) 我想知道它是通过降低质量来调整图像的高度和宽度还是仅调整尺寸? 最佳答案 它只会降低质量。 fu
我正在移植到 Android 的 iOS 应用程序中有一个照片上传图像小部件。数据以 multipart/form-data 格式作为 HTTP POST 发送。我需要在 Android 中复制它,但
我试图找出这个问题,但在做了我在操作系统或谷歌上发现的所有事情后都失败了。问题是,当我使用 UIImageJPEGRepresentation 或 UIImagePNGRepresentation 将
我在使用 UIImageJPEGRepresentation 时收到内存警告,有什么办法可以避免这种情况?它不会使应用程序崩溃,但我想尽可能避免它。它确实间歇性地不运行 [[UIApplication
我正在缩放和裁剪一个 UIImage,我希望能够在一个线程安全的 block 中执行此操作。我在文档中找不到 UIImageJPEGRepresentation 是否线程安全。 在下面的代码中,我裁剪
我的应用程序可以拍照或从相机胶卷中选择它们,然后使用 UIImagePicker 我将图片发送到 ViewController,然后用户可以在其中裁剪图像。 最终结果是带有名称和缩略图的 UITabl
我正在将收到的推送通知中的图像保存到磁盘。起初我尝试使用我通常在整个应用程序中使用的静态函数,但我无法从 NotificationService.swift 这是通知扩展。所以我复制了文件中的函数来使
我正在使用 CIFilters 将图像转换为灰度并应用一些图像处理效果。在 UIImageView 中显示输出是可行的;图像显示并按预期进行了修改。 但是,每次调用 UIImageJPEGRepres
我有一个图像(captureImage),它由相机拍摄并调整大小。我使用UIImageJPEGRepresentation来压缩图像,压缩后,图像的大小增加了。这是正常行为还是我以错误的方式进行压缩/
有人可以为我解释一下比例(0 到 1)吗?哪个质量最好/最差,这对文件大小有何影响? 最佳答案 关于规模 The quality of the resulting JPEG image, expres
我正在尝试保存图像 from here到设备的文档目录,但我的方法不起作用。我不得不提到这种方法适用于图片 like this : 我已经使用 iExplorer 检查了文档的目录,并且图像以正确的名
我有这段代码,它创建一个图像,然后向它添加一些效果并将其缩小以制作 largeThumbnail。 UIImage *originalImage = [UIImage imageWithData:se
在这里,我在具有静态方法的 UIImage 上按类别将我的图像转换为二进制数据。我的问题是 UIImageJPEGRepresentation 和 UIImagePNGRepresentation 非
在我的应用程序中,我使用相机和照片库来获取 UIImage, 然后将此 UIImage 缩小大约其正常大小的 20 倍然后我根据 UIImage 设置一个 NSData 对象。 _regularIma
所以我有这段代码来创建一个 UIImage: UIGraphicsBeginImageContextWithOptions(border.frame.size, YES, 0); [border.la
一直在与这个问题作斗争。基本上,我将图像转换为 NSData,以便将其发送到服务器。我以前使用过的代码,但由于某种原因,我收到了一个 ARC 错误。错误出现在我声明 imageData 变量的行上。
我在模拟器中使用 Safari 的“保留 + 保存图像”选项将一些图片存储到我的照片库中。当我从库中选择图像时,我必须将其转换为 JPEG 或 PNG,以便将其上传到服务器。问题是原始图像的大小约为
如上所述,当我使用 UIImageJPEGRepresentation 来NSData *imageData = UIImageJPEGRepresentation(self.selectedPic,
我是一名优秀的程序员,十分优秀!