objective-c - 将 UIImage 转换为 tiff/tif 文件

标签 objective-c uiimage uiimagepickercontroller tiff image-conversion

在我的 iPhone 应用程序中,我需要将 UIImage 转换为 tiff/tif 文件,以便使用 tif 类型的参数调用一些 API。所以我应该从 iphone 照片库获取 UIImage 或从相机拍摄照片。请让我知道这种转换(UIImage 到 tif/tiff)是否可行,如果可能,最好的方法是什么。提前致谢。

最佳答案

NSLog(@"I am using MagicWand Library");
//GIT path https://github.com/marforic/imagemagick_lib_iphone

MagickWandGenesis();
magick_wand = NewMagickWand();
MagickSetFormat(magick_wand, "tiff");
//NSData * dataObject = UIImagePNGRepresentation([UIImage imageNamed:@"daftpunk.jpg"]);
NSData * dataObject = UIImageJPEGRepresentation([UIImage imageNamed:@"daftpunk.jpg"], 1.0);
//UIImageJPEGRepresentation([imageViewButton imageForState:UIControlStateNormal], 90);
MagickBooleanType status;
status = MagickReadImageBlob(magick_wand, [dataObject bytes], [dataObject length]);
if (status == MagickFalse) {
    ThrowWandException(magick_wand);
}

size_t my_size;
unsigned char * my_image = MagickGetImageBlob(magick_wand, &my_size);
NSData * data = [[NSData alloc] initWithBytes:my_image length:my_size];
free(my_image);
magick_wand = DestroyMagickWand(magick_wand);
MagickWandTerminus();
UIImage * image = [[UIImage alloc] initWithData:data];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"DAFTPUNK.tif"]; //Add the file name
[data writeToFile:filePath atomically:YES];

[imageViewButton setImage:image forState:UIControlStateNormal];

关于objective-c - 将 UIImage 转换为 tiff/tif 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11969813/

相关文章:

objective-c - NSManagedObjectContext 困惑

ios - 背景图片未加载到设备上

iphone - 使用 OCMock 测试 NSWidowController

ios - 在运行循环的开始/结束时执行选择器

ios - 在堆栈 View 之间设置间距

ios - 如何将高清图像从 alasset 保存到 ios 中的文档文件夹

ios - 如何将 UIImagePickerController 与委托(delegate)一起使用?

ios - UIView(子类)试图呈现 UIImagePickerController

ios - 禁用重拍、播放和使用视频画面 UIImagePickerController

objective-c - 如何打印实例名称?