nsimage 转 png ,jpg的nsdata 类型

56 篇文章 0 订阅
5 篇文章 0 订阅
 
 
NSImage * image = ..........;
 
 
NSData *imageData = [image TIFFRepresentation];

NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:imageData];

[imageRep setSize:[[_imageView image] size]];

 

// png

NSData * imageData1 = [imageRep representationUsingType:NSPNGFileType properties:nil];

// jpg

NSDictionary *imageProps = nil;

NSNumber *quality = [NSNumber numberWithFloat:.85];

imageProps = [NSDictionary dictionaryWithObject:quality forKey:NSImageCompressionFactor];

NSData * imageData1 = [imageRep representationUsingType:NSJPEGFileType properties:imageProps];

NSImage保存时,尺寸变大的原因可能有以下几点: 1. 原始图像的分辨率较低: 如果原始图像的分辨率较低,在保存时会根据保存格式的要求进行图像的重新采样和调整,从而导致图像的尺寸变大。保存时可以选择调整分辨率或使用更高的压缩比例来减小图像尺寸。 2. 使用了不支持无损压缩的图像格式: 某些图像格式,如JPEG,采用有损压缩,保存时会丢失一定的细节信息。如果原始图像是使用无损压缩的格式保存的,如PNG或TIFF,换成不支持无损压缩的格式时,可能会导致尺寸的增大。 3. 存储格式选择不合适: 不同的图像格式适用于不同的应用场景,选择不合适的存储格式可能导致图像尺寸变大。例如,某些压缩算法在保存图像时会引入更多的噪点或压缩伪影,从而增加了图像的尺寸。 解决这个问题的方法有以下几种: 1. 调整图像分辨率: 可以在保存图像之前,根据实际需求调整图像的分辨率,减小图像的尺寸。可以使用NSImage的scale方法来改变图像的大小,从而减小图像的分辨率。 2. 使用支持无损压缩的图像格式: 对于不希望丢失图像细节的情况,可以选择使用支持无损压缩的图像格式,如PNG或TIFF,来保存图像。 3. 选择合适的图像存储格式: 针对不同的应用场景,选择合适的图像存储格式可以减小图像尺寸并保持图像质量。例如,对于需要高质量、无损压缩的情况,可以选择使用TIFF格式保存图像。对于需要较小尺寸的情况,可以选择使用JPEG格式,根据需求调整压缩比例。 通过上述方法进行图像保存时,可以有效控制图像尺寸的大小,满足不同应用场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值