我们正在使用开源图像处理工具ImageMagick来获取各种文件的缩略图。我们认为所有这些都运行得非常顺利,直到我们意识到某些浏览器(即Internet Explorer 8和Chrome)无法显示JPEG文件。
我只能假设ImageMagick转换的输出不是Web安全的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 :(得分: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色彩空间。
如果这没有帮助,您可能希望将识别命令的整个输出粘贴到您的问题中,因为这将极大地帮助诊断。
答案 1 :(得分:1)
您可以使用以下命令将cmyk转换为rgb
http://imagemagick.org/Usage/formats/#color_profile
转换cmyk_image.jpg -colorspace rgb rgb_image.jpg
答案 2 :(得分:0)
g.b.1981答案没问题,但我必须补充一下:对我来说,只有在添加-type truecolor
时它才能正常工作:
convert cmyk.jpg -colorspace rgb -type truecolor rgb.jpg