2

我们正在使用开源图像处理工具ImageMagick来获取各种文件的缩略图。我们认为这一切运行得非常顺利,直到我们意识到某些浏览器(即 Internet Explorer 8 和 Chrome)无法显示 JPEG 文件。

我只能假设 ImageMagick 转换的输出不是网络安全的 JPEG。为什么会出现这种情况,并且可以完全解决吗?

顺便说一句,我们正在使用命令行工具convert,我们正在使用这些参数:

convert -thumbnail 150x fileToThumb outputPath

编辑:

Image: 50afd2b1-e42c-4e90-9244-9c5a00c1933d.jpg
  Format: JPEG (Joint Photographic Experts Group JFIF format)
  Class: DirectClass
  Geometry: 150x212+0+0
  Resolution: 72x72
  Print size: 2.08333x2.94444
  Units: PixelsPerInch
  Type: ColorSeparation
  Endianess: Undefined
  Colorspace: CMYK
  Depth: 8-bit
  Channel depth:
    cyan: 8-bit
    magenta: 8-bit
    yellow: 8-bit
    black: 8-bit
  Channel statistics:
    cyan:
      min: 0 (0)
      max: 255 (1)
      mean: 28.492 (0.111734)
      standard deviation: 61.879 (0.242663)
      kurtosis: 5.32422
      skewness: 2.47138
    magenta:
      min: 0 (0)
      max: 255 (1)
      mean: 43.5579 (0.170815)
      standard deviation: 72.7733 (0.285386)
      kurtosis: 1.31682
      skewness: 1.57362
    yellow:
      min: 0 (0)
      max: 255 (1)
      mean: 53.0706 (0.20812)
      standard deviation: 85.3198 (0.334587)
      kurtosis: -0.0841614
      skewness: 1.2581
    black:
      min: 0 (0)
      max: 52 (0.203922)
      mean: 0.149434 (0.000586016)
      standard deviation: 1.78161 (0.00698672)
      kurtosis: 364.996
      skewness: 17.91
  Image statistics:
    Overall:
      min: 0 (0)
      max: 255 (1)
      mean: 25.054 (0.098251)
      standard deviation: 61.3102 (0.240432)
      kurtosis: 5.28177
      skewness: 2.5304
  Total ink density: 300%
  Rendering intent: Undefined
  Interlace: None
  Background color: white
  Border color: cmyk(223,223,223,0)
  Matte color: grey74
  Transparent color: black
  Page geometry: 150x212+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: JPEG
  Quality: 92
  Orientation: Undefined
  Properties:
    create-date: 2009-08-17T11:38:16+01:00
    jpeg:colorspace: 4
    jpeg:sampling-factor: 1x1,1x1,1x1,1x1
    modify-date: 2009-08-17T11:37:48+01:00
    signature: f5e85add196c10f1d73f416482e779245595a644877696fffb2637b5b97f6b9c
  Artifacts:
    verbose: true
  Tainted: False
  Filesize: 20.5kb
  Number pixels: 31.1kb
  Version: ImageMagick 6.5.3-10 2009-06-19 Q16 OpenMP http://www.imagemagick.org

这是识别输出(还注意到此 JPEG 图像在 Mac 上显示为纯黑色图像):

【这张图在哪里???】

4

3 回答 3

5

检查 JPEG 的色彩空间是否为 RGB,浏览器不会喜欢任何其他色彩空间。

要检查它,请使用 ImageMagick 识别命令

identify -verbose path/to/jpeg.jpg

输出应该像这样开始(通常大约 50 行)

  Format: JPEG (Joint Photographic Experts Group JFIF format)
  Class: DirectClass
  Geometry: 467x330+0+0
  Type: TrueColor
  Endianess: Undefined
  Colorspace: RGB        <----you are looking for this
  Depth: 8-bit
  ...

如果你有不同的色彩空间(例如 CMYK),你可以-colorspace RGB在你的转换命令行中使用来强制使用 RGB 色彩空间。

如果这没有帮助,您可能希望将识别命令的整个输出粘贴到您的问题中,因为这将极大地帮助诊断。

于 2009-08-12T16:33:31.700 回答
1

您可以使用以下命令将 cmyk 转换为 rgb

http://imagemagick.org/Usage/formats/#color_profile

转换 cmyk_image.jpg -colorspace rgb rgb_image.jpg

于 2011-04-12T11:00:59.613 回答
0

gb1981 答案是好的,但我必须补充:对我来说,它只有在添加时才能可靠地工作-type truecolor

convert cmyk.jpg -colorspace rgb -type truecolor rgb.jpg
于 2012-07-14T08:12:08.457 回答