【问题标题】:Uncommon png file iOS display不常见的png文件iOS显示
【发布时间】:2012-07-21 17:20:43
【问题描述】:

this post,我想知道为什么我的 png 文件在视网膜显示器上显示不好。

我终于发现问题出在PNG文件本身:当我打开它并用photoshop或其他东西再次保存时,问题就消失了。

正如this post 建议的那样,我使用 sips 命令查看我的 PNG 文件究竟是由什么组成的。我有original-image.png(有故障)和photoshoped-image.png

命令

sips original-image.png -g all

给我

  pixelWidth: 256
  pixelHeight: 256
  typeIdentifier: public.png
  format: png
  formatOptions: default
  dpiWidth: 72.000
  dpiHeight: 72.000
  samplesPerPixel: 3
  bitsPerSample: 8
  hasAlpha: no
  space: RGB

sips photoshoped-image.png -g all

给我

  pixelWidth: 256
  pixelHeight: 256
  typeIdentifier: public.png
  format: png
  formatOptions: default
  dpiWidth: 72.000
  dpiHeight: 72.000
  samplesPerPixel: 4
  bitsPerSample: 8
  hasAlpha: yes
  space: RGB
  profile: HD 709-A

所以 3 个不同之处:

  • 每像素样本
  • 有Alpha
  • 经过 Photoshop 处理的文件有一个配置文件。

但是这些属性在 sips 中是只读的,我想知道如何更改它们以准确了解错误的来源。

有什么想法吗?

【问题讨论】:

    标签: ios png retina-display image-conversion


    【解决方案1】:

    所以使用 sips 你可以输出不同的文件。获取 Photoshop 文件并开始修改它。先去掉profile,再去掉alpa通道(会影响前两个变量)。

    这张图片很可能有效。 PNG 有许多选项,原始图像可能具有使用这些工具看不到的其他一些功能。 Photoshop 显然是在完全重写图像,使用 RGB 值作为文件之间唯一的共同属性。

    我怀疑当您执行上述操作时,该图像也会起作用。原件有点奇怪。

    无论如何,如果您在 iOS 上使用带有 alpha 通道的 png 会更容易,因为如果基本图像没有,它会将它们转换为有一个。

    【讨论】:

    • 如何移除 Alpha 通道? sips 1.png -s hasAlpha no 不起作用,因为 hasAlpha 是只读的 (developer.apple.com/library/mac/#documentation/Darwin/Reference/…)
    • 我相信您可以使用 samplesPerPixel=3 来执行此操作或类似的操作。谷歌使用 sip 或实验 - 一开始有点令人生畏,但由于它的命令行你可以快速工作。要查看新图像,只需从终端说“打开 ”,它将在预览中打开图像。
    • 嗯...samplesPerPixel 似乎也是一个只读属性。
    • 嗯,我想说的是,一些命令行工具可以让你做到这一点。 ImageMagik 是肯定的,也许是一些 png 命令行工具。您可以获得大多数这些工具的二进制文件,因此无需从头开始构建。我以为您可以使用 sip 进行转换,但只能转换格式。如果您转换为 bmp 或 sgi 然后再转换回 png 它可能会添加一个 alpha 通道,但实验是找出答案的唯一方法。
    【解决方案2】:

    在某些文件上,这有效:

    sips -s format png '/Volumes/HD/Optimized PNG/TXT - Section Depth copy.png' --out '/Volumes/HD/Optimized PNG/TXT - Section Depth copy-.PNG' /Volumes/HD/Optimized PNG/TXT - 部分深度 copy.png /Volumes/HD/Optimized PNG/TXT - 部分深度复制-.PNG mis-bhayward61p-swk:~ zav$

    但是,有时它不会:

    sips -s format png --setProperty hasAlpha 0 '/Volumes/HD/Optimized PNG/Subsection copy 2/Section Depth Text.png' --out '/Volumes/HD/Optimized PNG/Subsection copy 2/Section Depth文本-​​.PNG' /Volumes/HD/优化的 PNG/分段复制 2/分段深度 Text.png 错误:无法在文件中执行 --setProperty hasAlpha /Volumes/HD/优化的 PNG/分段复制 2/分段深度文本-.PNG mis-bhayward61p-swk:~ zav$

    希望这能让你走得更远。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 2013-07-19
      • 2017-05-19
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多