3

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

回答

0

ImageMagick在iOS上运行,似乎符合法案。不过,我会考虑修改API,假设你有权访问它。如果大多数图像已经以某种格式进行了转换,那么对于您的客户而言,这是很多等待时间。如果您的API可以以多种格式与图像进行交互,那么您为一些人节省了一些时间。

0

UIImage不是一种图像文件格式;这只是iOS显示图像的一种方式。它从手机上的某处拍摄图像并将其放在屏幕上。无论这些图像的格式如何,您都可以将它们转换为tiff,因为UIImage支持显示该文件类型。

有没有本地UIImage tiff方法,但你可以做UIImagePNGRepresentationUIImageJPEGRepresentation

1
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];