2009-08-12 67 views
2

我们使用开源图像处理工具ImageMagick来缩放各种文件的缩略图。我们认为所有这些事情都运行得很顺利,直到我们意识到某些浏览器(即Internet Explorer 8和Chrome)无法显示JPEG文件。ImageMagick缩略图在某些浏览器上不可见

我只能假设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上的纯黑色图像):

[此图片在哪里]

+0

什么是正在生成的缩略图图像的BitDepth? – Wade 2009-08-12 16:27:35

回答

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色彩空间。

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

+0

干杯保罗,看着转换结果,它是说,该文件是RBG和深度为8位(按照您的示例)。 – Owen 2009-08-13 10:46:21

+0

好吧,我建议将标识的输出粘贴到您的问题中,也许有更多线索。 – 2009-08-13 11:13:31

+0

添加了标识信息编辑,欢呼声。 – Owen 2009-08-17 10:43:09

0

gb1981答案是确定的,但我必须补充:对我而言,只有在添加-type truecolor时,才能可靠地工作:

convert cmyk.jpg -colorspace rgb -type truecolor rgb.jpg