sra*_*rth 1 php android jpeg http charles-proxy
我一直在 Windows 机器上通过 imagemagick 重新采样图像。绝大多数工作正常,但是有一两个图像无法在任何 android 设备上加载。我以为是我的 java 应用程序代码损坏了,但我也可以在 Android 设备上的 Chrome 中重现它。
图像在 iOS/PC/Mac 上加载良好,只是在 android 上无法加载。在 10Kb 的数据中只有 320x44 像素并且没有看到任何错误消息,任何人都可以阐明我在使用 imagemagick 使其工作时可能做了什么(或我错过的步骤)吗?
这是 JPG 的链接
http://gatherhelp.com/tests/corruptjpg/broken.jpg
更新我已经使用“Charles”拦截来自电话的网络流量并查看此请求,这也表明我确实收到了一张白色图像,作为对来自 android 的此 URL 的响应。
我在服务器上使用 PHP,但未处理 JPG 文件,只是直接提供文件
我知道回答您自己的问题是一种糟糕的形式,但以防万一这对其他人有帮助...看来问题是我转换了一些最初用于打印并具有 CMYK 颜色格式而不是 RGB 的 PSD 和其他文件。
为了找出这一点,我使用了 ImageMagick 的识别命令并执行了此操作
Identify -verbose broken.jpg
Run Code Online (Sandbox Code Playgroud)
给予
Image: broken.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Class: DirectClass
Geometry: 256x256+0+0
Resolution: 250x250
Print size: 1.024x1.024
Units: PixelsPerInch
Type: ColorSeparation
Endianess: Undefined
Colorspace: CMYK
Depth: 8-bit
Run Code Online (Sandbox Code Playgroud)
这表明色彩空间是 CMYK,因此对其他损坏图像的快速测试表明它们都有相同的问题。再次将它们转换为 ImageMagick 以进行救援并使用
convert broken.jpg -colorspace RGB fixed.jpg
Run Code Online (Sandbox Code Playgroud)
因此,iOS/PC/Mac 似乎都支持具有 CMYK 的 JPEG,但 Android 似乎不支持或至少不是所有 CMYK 图像(从 Android 4.2 开始)
| 归档时间: |
|
| 查看次数: |
2438 次 |
| 最近记录: |