Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 什么是iOS中的PngCrush?_Objective C_Ios_Xcode_Image Optimization_Pngcrush - Fatal编程技术网

Objective c 什么是iOS中的PngCrush?

Objective c 什么是iOS中的PngCrush?,objective-c,ios,xcode,image-optimization,pngcrush,Objective C,Ios,Xcode,Image Optimization,Pngcrush,我知道Pngcrush是iOS中的一种图像优化技术,但我怀疑X-code是否会在每次构建期间或在将我们的应用部署到iTunes应用商店之前在内部执行此操作?我们需要在构建期间执行此图像优化?Xcode进行转换。最终的应用程序将修改PNG,您无需手动执行任何操作。默认情况下,XCode自动执行压缩操作 您可以通过项目的生成设置控制此行为: 搜索设置“压缩PNG文件”,并设置所需的值。PNG压缩使用pngcrush工具完成,您可以使用以下命令手动访问该工具: xcrun -sdk iphoneos

我知道Pngcrush是iOS中的一种图像优化技术,但我怀疑X-code是否会在每次构建期间或在将我们的应用部署到iTunes应用商店之前在内部执行此操作?我们需要在构建期间执行此图像优化?

Xcode进行转换。最终的应用程序将修改PNG,您无需手动执行任何操作。

默认情况下,XCode自动执行压缩操作

您可以通过项目的生成设置控制此行为:


搜索设置“压缩PNG文件”,并设置所需的值。

PNG压缩使用
pngcrush
工具完成,您可以使用以下命令手动访问该工具:

xcrun -sdk iphoneos pngcrush -iphone ...
Xcode将自动为添加到目标的任何文件执行此操作,文件类型为“PNG”:

如果使用目录引用包含资源,Xcode将不会执行PNG压缩,您必须手动执行此操作

您可以使用以下小bash片段手动粉碎目录中的所有PNG:

find /path/to/directory -name "*.png" | while read filename; do
    xcrun -sdk iphoneos pngcrush -iphone "$filename" "${filename}_crushed"
    mv "${filename}_crushed" "${filename}"
done

请不要重复你的问题。如果您有什么要添加的,请改为编辑原始图像。粉碎下载供应用程序内使用的图像(如在uitableview中)是否有任何性能优势?我想这就是他们首先这么做的原因。它们对alpha进行预乘,因此它们不必在加载时或绘图时进行预乘;他们交换通道,所以通道顺序就是我猜的硬件通道顺序,所以他们也不必在加载时这样做。