如何在objective-c中更改图像分辨率

如何在objective-c中更改图像分辨率,第1张

概述我需要改变objective-c中现有图像分辨率,就像Apple的预览应用程序工具 – >调整大小…->分辨率一样. 请让我知道可能的解决方案. 这是我用过的一个很好的样本 – http://weblog.scifihifi.com/2005/06/25/how-to-resize-an-nsimage/ 从该示例中,您可以将resizedData写入文件 – 这将是tiff格式的调整大小的输出 我需要改变objective-c中现有图像的分辨率,就像Apple的预览应用程序工具 – >调整大小…->分辨率一样.

请让我知道可能的解决方案.

解决方法 这是我用过的一个很好的样本 – http://weblog.scifihifi.com/2005/06/25/how-to-resize-an-nsimage/

从该示例中,您可以将resizedData写入文件 – 这将是tiff格式的调整大小的输出.

更新:

这里是NSImage类别实现,它允许使用指定的DPI保存NSImage实例:

@interface NSImage (DPIHelper)- (voID) saveAsImageType: (NSBitmAPImagefileType) imageType withDPI: (CGfloat) dpiValue atPath: (Nsstring *) filePath;@end@implementation NSImage (DPIHelper)- (voID) saveAsImageType: (NSBitmAPImagefileType) imageType withDPI: (CGfloat) dpiValue atPath: (Nsstring *) filePath{  NSBitmAPImageRep *rep = [[self representations] objectAtIndex: 0];  NSSize pointsSize = rep.size;  NSSize pixelSize = NSMakeSize(rep.pixelsWIDe,rep.pixelsHigh);  CGfloat currentDPI = ceilf((72.0f * pixelSize.wIDth)/pointsSize.wIDth);  NSLog(@"current DPI %f",currentDPI);  NSSize updatedPointsSize = pointsSize;  updatedPointsSize.wIDth = ceilf((72.0f * pixelSize.wIDth)/dpiValue);  updatedPointsSize.height = ceilf((72.0f * pixelSize.height)/dpiValue);  [rep setSize:updatedPointsSize];  NSData *data = [rep representationUsingType: imageType propertIEs: nil];  [data writetofile: filePath atomically: NO];}@end

你可以像这样使用它:

NSImage *theImage2 = [NSImage imagenamed:@"image.jpg"];[theImage2 saveAsImageType:NSJPEGfileType withDPI: 36.0f atPath: @"/Users/<user-name>/image-updated.jpg"];
总结

以上是内存溢出为你收集整理的如何在objective-c中更改图像分辨率全部内容,希望文章能够帮你解决如何在objective-c中更改图像分辨率所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1034318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存