
任何帮助将非常感谢.
干杯
亚历克斯
编辑
NSArray *keys = [NSArray arrayWithObject:@"NSImageCompressionFactor"];NSArray *objects = [NSArray arrayWithObject:@"1.0"];NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];NSImage *image = [[NSImage alloc] initWithContentsOffile:[imageFIEld stringValue]];NSBitmAPImageRep *imageRep = [[NSBitmAPImageRep alloc] initWithData:[image TIFFRepresentation]];NSData *tiff_data = [imageRep representationUsingType:NSPNGfileType propertIEs:dictionary];Nsstring *base64 = [tiff_data encodeBase64WithNewlines:NO];解决方法 NSImage是一个非常抽象的对象. NSImage并不关心它是光栅图像还是矢量图像; NSImage对象甚至可以同时具有栅格,矢量甚至编程表示 – 这就是一般情况.
在生成Base64数据之前,您必须确定要编码的内容.
第一步是决定是否要对栅格或矢量进行编码.前者很简单,我猜它可能就是你的意思.但是,NSImage可能来自矢量源,例如pdf文档.
如果您知道从光栅源创建了图像,则只需编码该源数据即可.
如果它来自矢量源,你仍然可以编码,如果你知道解码端的应用程序将能够处理它(例如,如果它是另一个Cocoa或Cocoa touch应用程序).另一方面,如果解码端的应用程序可能无法处理矢量数据,那么您应该避免这种策略.
在所有情况下都适用的一种解决方案是使用图像的NSBitmapImageRep到create a raster capture.将焦点锁定在图像上,然后使用该方法创建NSBitmAPImageRep,然后解锁焦点.然后,使用representationUsingType:properties:生成图像的PNG(或任何适当的格式)数据.然后Base64编码PNG(或任何格式)数据.
总结以上是内存溢出为你收集整理的可可 – 对Base64的NSImage全部内容,希望文章能够帮你解决可可 – 对Base64的NSImage所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)