不说 Ruby 或 Rails,我不太了解您的问题,但我认为您正在尝试获取有关 base64 编码图像的信息,我也许可以提供帮助。恐怕我只能从命令行方面来找你,但希望你能用 Ruby 将它...
让我们创建一个小图像:
convert -size 50x50 xc:red xc:lime xc:blue +append image.gif
要使用 ImageMagick 获取有关图像的信息,您通常使用 IM 套件中的 identify 程序,如下所示:
identify -verbose image.gif
Image: image.gif
Format: GIF (CompuServe graphics interchange format)
Mime type: image/gif
Class: PseudoClass
Geometry: 150x50+0+0
Units: Undefined
Type: Palette
Endianess: Undefined
Colorspace: sRGB
Depth: 8/1-bit
Channel depth:
red: 1-bit
green: 1-bit
blue: 1-bit
Channel statistics:
Pixels: 7500
Red:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Green:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Blue:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Colors: 3
Histogram:
2500: ( 0, 0,255) #0000FF blue
2500: ( 0,255, 0) #00FF00 lime
2500: (255, 0, 0) #FF0000 red
Colormap entries: 4
Colormap:
0: (255, 0, 0) #FF0000 red
1: ( 0,255, 0) #00FF00 lime
2: ( 0, 0,255) #0000FF blue
3: ( 0, 0, 0) #000000 black
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Background color: red
Border color: srgb(223,223,223)
Matte color: grey74
Transparent color: black
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 150x50+0+0
Dispose: Undefined
Compression: LZW
Orientation: Undefined
Properties:
date:create: 2015-11-17T10:07:39+00:00
date:modify: 2015-11-17T10:07:39+00:00
signature: 48d1b973cce66f9a19f3b3738773a30f0519438d893cdfff2223e1941589e008
Artifacts:
filename: image.gif
verbose: true
Tainted: False
Filesize: 325B
Number pixels: 7.5K
Pixels per second: 7.5EB
User time: 0.000u
Elapsed time: 0:01.000
Version: ImageMagick 6.9.2-6 Q16 x86_64 2015-11-15 http://www.imagemagick.org
如果我想对它进行 base64 编码,我会像这样使用openssl:
openssl enc -base64 -in image.gif
R0lGODlhlgAyAPEAAP8AAAD/AAAA/wAAACH5BAAAAAAALAAAAACWADIAAAL+hI+p
y50Bo5y02juF3rz7D4adQ5YmgqXqKonuC3PnTD/sjbfxzsv1f8oJb73iDogkDZcp
o9OVjC6Y1Mrz+pFqD9VuBAvebLdebzg81pa7Z3Bauq62se9onDq/1pN3Zv65h9S3
9OcUCDQ4VGh0+JMotFjUWPOYE9kzSVOJc8mTObNJ1BnzGRS6MkpaWnKKmvqyytra
9AoV6zBLWxtyi5t7sSvS2/ALHAwyzFBscYycrLBs1ezxDB2dMT1SjXKtky22zdX9
9Q0eDjBOXi5wbpAOsa7Rjv4ez97+HmA/n7+PXx+PH8B1AtP5O9cv4D+DChEOLFdw
3MFwCQkulNiQ4sMXbxG7TdxWEeJFjxlBbszW8drHaiG/FQAAOw==
我的帖子的重点是表明您可以将 base64 混乱输入identify 进行解释,如下所示:
identify -verbose "data:image/gif;base64,R0lGODlhlgAyAPEAAP8AAAD/AAAA/wAAACH5BAAAAAAALAAAAACWADIAAAL+hI+p
> y50Bo5y02juF3rz7D4adQ5YmgqXqKonuC3PnTD/sjbfxzsv1f8oJb73iDogkDZcp
> o9OVjC6Y1Mrz+pFqD9VuBAvebLdebzg81pa7Z3Bauq62se9onDq/1pN3Zv65h9S3
> 9OcUCDQ4VGh0+JMotFjUWPOYE9kzSVOJc8mTObNJ1BnzGRS6MkpaWnKKmvqyytra
> 9AoV6zBLWxtyi5t7sSvS2/ALHAwyzFBscYycrLBs1ezxDB2dMT1SjXKtky22zdX9
> 9Q0eDjBOXi5wbpAOsa7Rjv4ez97+HmA/n7+PXx+PH8B1AtP5O9cv4D+DChEOLFdw
> 3MFwCQkulNiQ4sMXbxG7TdxWEeJFjxlBbszW8drHaiG/FQAAOw=="
Image:
Base filename: FQAAOw==
Format: GIF (CompuServe graphics interchange format)
Mime type: image/gif
Class: PseudoClass
Geometry: 150x50+0+0
Units: Undefined
Type: Palette
Endianess: Undefined
Colorspace: sRGB
Depth: 8/1-bit
Channel depth:
red: 1-bit
green: 1-bit
blue: 1-bit
Channel statistics:
Pixels: 7500
Red:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Green:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Blue:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 85 (0.333333)
standard deviation: 120.208 (0.471405)
kurtosis: -1.5
skewness: 0.707107
entropy: 0.918296
Colors: 3
Histogram:
2500: ( 0, 0,255) #0000FF blue
2500: ( 0,255, 0) #00FF00 lime
2500: (255, 0, 0) #FF0000 red
Colormap entries: 4
Colormap:
0: (255, 0, 0) #FF0000 red
1: ( 0,255, 0) #00FF00 lime
2: ( 0, 0,255) #0000FF blue
3: ( 0, 0, 0) #000000 black
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Background color: red
Border color: srgb(223,223,223)
Matte color: grey74
Transparent color: black
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 150x50+0+0
Dispose: Undefined
Compression: LZW
Orientation: Undefined
Properties:
date:create: 2015-11-17T10:12:05+00:00
date:modify: 2015-11-17T10:12:05+00:00
signature: 48d1b973cce66f9a19f3b3738773a30f0519438d893cdfff2223e1941589e008
Artifacts:
filename: data:image/gif;base64,R0lGODlhlgAyAPEAAP8AAAD/AAAA/wAAACH5BAAAAAAALAAAAACWADIAAAL+hI+p
y50Bo5y02juF3rz7D4adQ5YmgqXqKonuC3PnTD/sjbfxzsv1f8oJb73iDogkDZcp
o9OVjC6Y1Mrz+pFqD9VuBAvebLdebzg81pa7Z3Bauq62se9onDq/1pN3Zv65h9S3
9OcUCDQ4VGh0+JMotFjUWPOYE9kzSVOJc8mTObNJ1BnzGRS6MkpaWnKKmvqyytra
9AoV6zBLWxtyi5t7sSvS2/ALHAwyzFBscYycrLBs1ezxDB2dMT1SjXKtky22zdX9
9Q0eDjBOXi5wbpAOsa7Rjv4ez97+HmA/n7+PXx+PH8B1AtP5O9cv4D+DChEOLFdw
3MFwCQkulNiQ4sMXbxG7TdxWEeJFjxlBbszW8drHaiG/FQAAOw==
verbose: true
Tainted: False
Filesize: 325B
Number pixels: 7.5K
Pixels per second: 7.5EB
User time: 0.000u
Elapsed time: 0:01.000
Version: ImageMagick 6.9.2-6 Q16 x86_64 2015-11-15 http://www.imagemagick.org
[1]: http://i.stack.imgur.com/j9Ei0.gif
或者,您可以使用 convert 并从其 base64 编码状态重新创建图像,如下所示:
{ echo "data:image/png;base64,"; openssl enc -base64 -in image.png; } | convert inline:- decoded.gif