iOS 将一个文件夹下的所有3倍图自动转成2倍图程序源码

如果开发iOS的话,有的时候来不及将所有的三倍图转成2倍图,可以写一个Mac版本的命令行小工具,自动将一个文件夹下的所有三倍尺寸的图片转成2倍图片,并且将hello@3x.com命令为hello@2x.png。当然还是有设计一张一张切出来也是可以的,这里只是提供了一个快捷的方法

也可以自己修改里面的比例,自动裁剪出更多尺寸的图片或者支持更多的功能

值得注意的是,Mac版本的裁剪也需要考虑屏幕是否是高清屏幕, 下面是一些主要部分的代码:

<pre name="code" class="objc">CGFloat scale = [NSScreen mainScreen].backingScaleFactor;
NSLog(@"scale: %f", scale);
CGFloat scaleFactor = 1.0 / scale;
// 下面是裁剪的时候,需要转换图片的尺寸。
NSSize newSize = NSMakeSize(image.pixelsWide * scaleFactor * 2.0 / 3.0, image.pixelsHigh * scaleFactor * 2.0 / 3.0);
    
NSImage *newImage = [self resizeImage:image size:newSize];
    
NSData *outputData= [newImage TIFFRepresentation];
NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:outputData];
NSDictionary *imageProps = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:0.9] forKey:NSImageCompressionFactor];
NSData *data = [imageRep representationUsingType:NSPNGFileType properties:imageProps];
    
BOOL ok = [data writeToFile:newPath atomically:YES];
NSLog(@"save %@ ok:%@", newPath, ok ? @"YES" : @"NO");

代码中新图片使用的PNG格式,如果需要使用JPEG格式的话,可以自己下载代码进行修改。

代码下载地址:

http://download.csdn.net/detail/liyan223/8327709

代码运行方式:

clang++ -o imageResizer main.mm -framework Foundation -framework Cocoa -framework QuartzCore
./imageResizer imageFolderPath
当然上面只是其中的一种方式,也可以利用上面的代码,自己简单地加一个图形界面



发布了51 篇原创文章 · 获赞 28 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览