This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Converting Among Image Formats (written by Antonio Cangiano) | ||
|---|---|---|
| Code | Expected | Actual |
require 'rubygems'
require 'RMagick'
img = Magick::Image.read('myimage.png').first
img.write('myimage.jpg')
Magick::Image.read('JPG:myimage.png') |
Magick::ImageMagickError: Not a JPEG file: starts with 0x89 0x50 `myimage.png': ... |
Magick::ImageMagickError: Not a JPEG file: starts with 0x89 0x50 `myimage.png': from (irb):5:in `read' from (irb):5 from :0 |
img = Magick::Image.read('myimage.png').first
img.write('myimage.jpg') # Writes a JPEG
img.write('myimage.gif') # Writes a GIF
img.write('JPG:myimage') # Writes a JPEG
img.write('JPG:myimage.gif') # Writes a JPEG
img.format |
"PNG" | "PNG" |
img.format = 'GIF' img.format |
"GIF" | "GIF" |
Magick.formats['GIF'] |
"*rw+" | "*rw+" |
Magick.formats['JPG'] |
"*rw-" | "*rw-" |
Magick.formats['AVI'] |
"*r--" | "*r--" |
Magick.formats['PS'] |
" rw+" | " rw+" |
module Magick
[['native_blob?', ?*], ['readable?', ?r],
['writable?', ?w], ['multi_image?', ?+]].each_with_index do |m, i|
define_method(m[0]) do |format|
code = formats[format]
return code && code[i] == m[1]
end
module_function(m[0])
end
end
Magick.multi_image? 'GIF' |
true | true |
Magick.multi_image? 'JPG' |
false | false |