当前位置:首页 >> 智能

iOS 之前的 PNG

来源:智能   2024年01月13日 12:16

Optimized PNG: $name"; }}

Xcode 通过从换取机密文件列表单单所有形容词为 .png 的视频机密文件,分列继续执行 Apple 修订 pngcrush 机器,终于获得 Apple 所必需的 PNG 视频。

我们以早先短文的头平面图作为所无必需的验证案例

xcrun -sdk iphoneos pngcrush -q -iphone -f 0 image.png image1.png

去掉 -q 给定,可以看得见这个更赞进一步的一些电子邮件:

xcrun -sdk iphoneos pngcrush -iphone -f 0 image.png image1.png | pngcrush 1.6.4 | Copyright (C) 1998-2002,2006 Glenn Randers-Pehrson | Copyright (C) 2005 Greg Roelofs | This is a free, open-source program. Permission is irrevocably | granted to everyone to use this version of pngcrush without | payment of any fee. | Executable name is pngcrush | It was bUIlt with libpng version 1.2.7, and is | running with libpng version 1.2.7 - September 12, 2004 (header) | Copyright (C) 1998-2004,2006 Glenn Randers-Pehrson, | Copyright (C) 1996, 1997 Andreas Dilger, | Copyright (C) 1995, Guy Eric Schalnat, Group 42 Inc., | and zlib version 1.2.11, Copyright (C) 1998-2002 (or later), | Jean-loup Gailly and Mark Adler. | It was compiled with LLVM Apple LLVM 12.0.5 (clang-1205.0.19.59.6) [+internal-os, ptrauth-isa=deployment-target-based] and modified by Apple as indicated in the sources. Recompressing image.png Total length of data found in IDAT chunks = 144033 IDAT length with method 120 (fm 0 zl 9 zs 1) = 215970 Best pngcrush method = 120 (fm 0 zl 9 zs 1) for image1.png (49.94% IDAT increase) (49.76% filesize increase) CPU time used = 0.064 seconds (decoding 0.008, Encoding 0.042, other 0.013 seconds)

视频尺寸从 144033 扩大带入 215970,「Compress PNG Files」 的表象就是重写更赞进一步单单 Apple 借助于 pngcrush 来处理作法所无必需常用的 PNG 视频,以便 iOS 平台更赞快地常用视频。

你可以将机密文件赞到到工程项目索引单单而不是 「Assets Catalogs」 单单,然后紧密结合显露 ipa 自带,借助于 pngdefry[8]和 pngcheck[9] 量化视频。

pngcrush衍生

Apple **修订的 pngcrush ** 机器主要有两种分析方法:

编码下达:xcrun -sdk iphoneos pngcrush -iphone

作法在下达:xcrun -sdk iphoneos pngcrush -revert-iphone-optimizations

视频赞速

在 iOS 减自带的 Tip 单单,我们察觉到自然资源关键问题是严重影响自带尺寸的主要以外,而视频自然资源是合作开发更赞进一步单单最罕见的。常用准确的视频赞速机器必必需有效率透过减自带。

有损赞速和都将赞速

罕见的赞速机器有 tinypng,pngquant,ImageAlpha、ImageOptim、pngcrush、optipng、pngout、pngnq、advpng 等,根据其赞速作法分开两大阵营:有损赞速和都将赞速

根据文献资料推断,tinypng、pngquant、ImageAlpha、pngnq 都是有损赞速,基本引入的都是quantization解法,将 24 位的 PNG 视频叠赞为 8 位的 PNG 视频,减少视频的粉红色有数;pngcrush、optipng、pngout、advpng 都是都将赞速,引入的都是基于 LZ/Huffman 的DEFLATE 解法,减少视频 IDAT chunk 地带的平面图表。一般有损赞速的赞速率时会大大略低于都将赞速。

赞速机器

对于这两项单单罕见的背景平面图、占位平面图和大的标签平面图来说,破例常用一般而言两种机器

TinyPNG4Mac:借助于 tinify 提供的API,目前 tinify 的上网版赞速有数量是单词不超过 20 张且尺寸不超过 5 M。对于一般的 iOS 客户端来说,足够日常合作开发的常用ImageOptim-CLI:系统会先后继续执行赞速率较高的为 ImageAlpha 的有损赞速 赞上 ImageOptim 的都将赞速。

可以通过提示这个示例对比 TinyPng 和 ImageOptim-CLI 。

对于小平面图来说,例如我们罕见的 icon 平面图标来说,我们通过改变其个位为 RGB with palette 来达到视频赞速效用。你可以常用 ImageOptim 改变视频的个位为 RGB with palette。

imageoptim -Q ----no-imageoptim ----imagealpha ----number-of-colors 16 ----quality 40-80 ./1.png

通过 Palette Images 深入明了 palette,也就是便是的调色板解法。

Xcode倒数第最优化

我们一般常用 Assets Catalogs 对视频自然资源透过管理。其时会发挥起到相异的最优化作法

在紧密结合更赞进一步单单,Xcode 时会通过自己的赞速解法重新对视频透过处理作法。在紧密结合 Assets Catalogs 的重写产物 Assest.car 的更赞进一步单单,Xcode 时会常用 actool 对 Assets Catalogs 单单的 png 视频透过作法在,由此得到 Bitmap 平面图表,然后再进一步善用 actool 的编码赞速解法透过编码赞速处理作法。所以不改变个位的都将赞速分析方法终于的自带尺寸来说,确实没有人什么起到。

对同一张视频,在不同器材、iOS 种系统上 Xcode 引入了不同的赞速解法这也造成了了下载时候不同的器材针对视频显现显露尺寸的差别。

借助于 assetutil 机器量化 Assest.car 来得到其基本的赞速分析方法

sudo xcrun ----sdk iphoneos assetutil ----info ***.app/Assets.car> ***.JSON

主要非议一般而言有数组 Compression 、Encoding、SizeOnDisk。

Compression 赞速分析方法,针对不同器材、iOS种系统,其赞速分析方法都是不同的Encoding 个位SizeOnDisk 最精确视频尺寸 { "AssetType" : "Image", "BitsPerComponent" : 8, "ColorModel" : "RGB", "Colorspace" : "srgb", "Compression" : "deepmap2", "Encoding" : "ARGB", "Name" : "image", "NameIdentifier" : 51357, "Opaque" : false, "PixelHeight" : 300, "PixelWidth" : 705, "RenditionName" : "image.png", "Scale" : 1, "SHA1Digest" : "294FEE01362591334E3C3B4ECE54AF0EA8491781", "SizeOnDisk" : 113789, "Template Mode" : "automatic" }

如果落成 APP Thinning 来生成不同器材的 ipa 自带,然后针对每个 ipa 自带都透过一次解赞速,并换取其单单的 Assets.car 嵌入相异的 assets.json 确实有些冗余,你也可以借助于高邮市商城的 APP 实践单单写到的 assetutil 的分析方法从通用自带的 Assets.car 机密文件嵌入指定器材的 Assets.car 机密文件

sudo xcrun ----sdk iphoneos assetutil ----idiom phone ----subtype 570 ----scale 3 ----display-gamut srgb ----graphicsclass MTL2,2 ----graphicsclassfallbacks MTL1,2:GLES2,0 ----memory 1 ----hostedidioms car,watch xxx/Assets.car -o xxx/thinning_assets.car

对瘦自带来说,赞后下工程项目的视频尺寸并不能真正反映显露其对紧密结合自带的严重影响。请牢记「视频的真正的尺寸是其在 ipa 的尺寸」——自带括赞到后下 「Asset Catalogs」 单单的视频终于被转成.car 机密文件,其余是在自带里的视频、各种 bundle里的机密文件。

赞速的危害

不要盲目的信念最大的赞速比,既无必需重新考虑赞速显露视频的低质量,也无必需重新考虑经过 Xcode 终于构成机密文件的真正尺寸。

赞速完成的视频须要在成像的器材上是不是时会不时会有什么关键问题,让 UI 好好是不是,时会不时会显现显露噪点、毛边等自然现象。

如果一个视频经过有损赞速终于造成了其在 Assets.car 单单 SizeOnDisk 值更赞为较大的话,但其在各个器材上的展示显露确实时会又挺好,你可以在此最后将其赞到 bundle 单单常用,并将其视频文件格式修订为 Data,这样 Xcode 就不时会对齐透过赞速处理作法了。不过不要记起将调用分析方法改名 imageWithContentOfFile:。

![](_images/main/截屏2021-06-25 17.44.37.png)

![](_images/main/截屏2021-06-25 17.45.03.png)

在这里提示视频赞速 [10] 更赞多理论为基础。

jpg 叠赞成 png

在 Assets Catalogs 单单赞到的 jpg 机密文件,在终于的 .car 机密文件单单时会叠赞成 png 文件格式

当我们跟 UI 要视频时,如果 UI 扔给你一张 .jpg 或 jpeg 文件格式的视频,你时会专业的说显露,最好给我 PNG 视频,否则种系统时会转成带入 PNG的。

首页,我们赞后下工程项目索引单单的 JPG 视频紧密结合以后不时会经过「任何赞速」且其在自带单单的「文件格式不时会修订」。

而对于赞到后下Assets Catalogs 单单的 JPG 视频,我们无必需解自带.car 机密文件,我们以前面的验证 JPG 视频为例,其表现手法名称和机密文件名称都为 Untitledlogo。

借助于 assetutil 机器得到相异 JSON 的以外:

{ "AssetType" : "Image", "BitsPerComponent" : 8, "ColorModel" : "RGB", "Encoding" : "JPEG", "Name" : "Untitledlogo", "NameIdentifier" : 16638, "Opaque" : true, "PixelHeight" : 300, "PixelWidth" : 705, "RenditionName" : "Untitledlogo.jpg", "Scale" : 1, "SHA1Digest" : "8AD0802190689DEC7778A28EEFFBE972F4121B5B", "SizeOnDisk" : 68122, "Template Mode" : "automatic" }

相当多逆向 .car 机密文件的机器,都是借助于 Apple 的管理者努 CoreUI.framework 模拟 Apple 访问视频的更赞进一步然后借助于 pngcrush 「作法在恢复」其单单的 PNG 视频。表象是用 CoreUI.framework 单单的 CUICatalog 提取其细节。

笔者常用的是Asset Catalog Tinkerer,选择我们的验证的 Assets.car

然后借助于其嵌入功能,嵌入视频:

所得两张「PNG 视频」,是的,是两张被作法在过得 PNG 视频

更赞多机器可以参照 Analysing Assets.car file in iOS [11] 单单所写到的机器以及QuickLook 的可视化 .car 机密文件插件 [12] ,很多机器都是开文档,可以提示基本提示。

总结

在这两项单单常用 PNG 或其他文件格式视频自然资源时,无必需重新考虑其对整体自带尺寸的严重影响。对于赞到后下工程项目单单的 PNG 自然资源,APP 都时会对其透过处理作法,以便更赞快速的复制到。

赞到后下 Asset Catalog 单单的 PNG 视频,都将赞速的 PNG 视频在其终于紧密结合单单,其赞速作法确实并没有人什么起到,但是有损赞速的话,确实与 Apple 本身的赞速分析方法起冲突 ,造成了倒数第最优化。

总的来说,如果是 Asset Catalog PNG 视频自然资源来说,一般不无必需主动赞速的。

请注意

CgBI_file_format:_file_format

抖音实用性建设 - iOS 安装自带尺寸最优化实践篇:

今日头条 iOS 安装自带尺寸最优化 - 新阶段、新实践:

PNG视频赞速对比量化:

TinyPNG4Mac:

ImageOptim-CLI:

Portable Network Graphics (PNG) Specification (Second Edition):

pngdefry ‒ Repairing -iPhone fried PNGs:

pngcheck:

Chapter 9. Compression and Filtering:

Analysing Assets.car file in iOS:

QuickLook 的可视化 .car 机密文件插件:

Asset Catalog Tinkerer:

颈椎病怎么止痛
拉肚子快速止泻小窍门
肠炎拉肚子吃什么药
康恩贝肠炎宁颗粒的功效与作用
吃完益生菌拉肚子正常吗
友情链接