2009-08-12 68 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 
相關問題