image_science 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +6 -0
- data/Manifest.txt +2 -0
- data/lib/image_science.rb +10 -4
- data/test/pix.png +0 -0
- data/test/test_image_science.rb +124 -0
- metadata +6 -4
    
        data/History.txt
    CHANGED
    
    
    
        data/Manifest.txt
    CHANGED
    
    
    
        data/lib/image_science.rb
    CHANGED
    
    | @@ -11,7 +11,7 @@ require 'inline' | |
| 11 11 | 
             
            # http://seattlerb.rubyforge.org/ImageScience.html
         | 
| 12 12 |  | 
| 13 13 | 
             
            class ImageScience
         | 
| 14 | 
            -
              VERSION = '1.1. | 
| 14 | 
            +
              VERSION = '1.1.2'
         | 
| 15 15 |  | 
| 16 16 | 
             
              ##
         | 
| 17 17 | 
             
              # The top-level image loader opens +path+ and then yields the image.
         | 
| @@ -181,11 +181,16 @@ class ImageScience | |
| 181 181 | 
             
                END
         | 
| 182 182 |  | 
| 183 183 | 
             
                builder.c <<-"END"
         | 
| 184 | 
            -
                  VALUE resize( | 
| 184 | 
            +
                  VALUE resize(long w, long h) {
         | 
| 185 | 
            +
                    if (w <= 0) rb_raise(rb_eArgError, "Width <= 0");
         | 
| 186 | 
            +
                    if (h <= 0) rb_raise(rb_eArgError, "Height <= 0");
         | 
| 185 187 | 
             
                    GET_BITMAP(bitmap);
         | 
| 186 188 | 
             
                    FIBITMAP *image = FreeImage_Rescale(bitmap, w, h, FILTER_CATMULLROM);
         | 
| 187 | 
            -
                     | 
| 188 | 
            -
             | 
| 189 | 
            +
                    if (image) {
         | 
| 190 | 
            +
                      copy_icc_profile(self, bitmap, image);
         | 
| 191 | 
            +
                      return wrap_and_yield(image, self, 0);
         | 
| 192 | 
            +
                    }
         | 
| 193 | 
            +
                    return Qnil;
         | 
| 189 194 | 
             
                  }
         | 
| 190 195 | 
             
                END
         | 
| 191 196 |  | 
| @@ -196,6 +201,7 @@ class ImageScience | |
| 196 201 | 
             
                    if ((fif != FIF_UNKNOWN) && FreeImage_FIFSupportsWriting(fif)) { 
         | 
| 197 202 | 
             
                      GET_BITMAP(bitmap);
         | 
| 198 203 | 
             
                      int flags = fif == FIF_JPEG ? JPEG_QUALITYSUPERB : 0;
         | 
| 204 | 
            +
                      if (fif == FIF_PNG) FreeImage_DestroyICCProfile(bitmap);
         | 
| 199 205 | 
             
                      return FreeImage_Save(fif, bitmap, output, flags) ? Qtrue : Qfalse;
         | 
| 200 206 | 
             
                    }
         | 
| 201 207 | 
             
                    rb_raise(rb_eTypeError, "Unknown file format");
         | 
    
        data/test/pix.png
    ADDED
    
    | Binary file | 
| @@ -0,0 +1,124 @@ | |
| 1 | 
            +
            require 'test/unit/testcase'
         | 
| 2 | 
            +
            require 'test/unit' if $0 == __FILE__
         | 
| 3 | 
            +
            require 'image_science'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            class TestImageScience < Test::Unit::TestCase
         | 
| 6 | 
            +
              def deny x; assert ! x; end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def setup
         | 
| 9 | 
            +
                @path = 'test/pix.png'
         | 
| 10 | 
            +
                @tmppath = 'test/pix-tmp.png'
         | 
| 11 | 
            +
                @h = @w = 50
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def teardown
         | 
| 15 | 
            +
                File.unlink @tmppath if File.exist? @tmppath
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              def test_class_with_image
         | 
| 19 | 
            +
                ImageScience.with_image @path do |img|
         | 
| 20 | 
            +
                  assert_kind_of ImageScience, img
         | 
| 21 | 
            +
                  assert_equal @h, img.height
         | 
| 22 | 
            +
                  assert_equal @w, img.width
         | 
| 23 | 
            +
                  assert img.save(@tmppath)
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                assert File.exists?(@tmppath)
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                ImageScience.with_image @tmppath do |img|
         | 
| 29 | 
            +
                  assert_kind_of ImageScience, img
         | 
| 30 | 
            +
                  assert_equal @h, img.height
         | 
| 31 | 
            +
                  assert_equal @w, img.width
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
              def test_class_with_image_missing
         | 
| 36 | 
            +
                assert_raises TypeError do
         | 
| 37 | 
            +
                  ImageScience.with_image @path + "nope" do |img|
         | 
| 38 | 
            +
                    flunk
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
              def test_class_with_image_missing_with_img_extension
         | 
| 44 | 
            +
                assert_nil ImageScience.with_image("nope#{@path}") do |img|
         | 
| 45 | 
            +
                  flunk
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              def test_resize
         | 
| 50 | 
            +
                ImageScience.with_image @path do |img|
         | 
| 51 | 
            +
                  img.resize(25, 25) do |thumb|
         | 
| 52 | 
            +
                    assert thumb.save(@tmppath)
         | 
| 53 | 
            +
                  end
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                assert File.exists?(@tmppath)
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                ImageScience.with_image @tmppath do |img|
         | 
| 59 | 
            +
                  assert_kind_of ImageScience, img
         | 
| 60 | 
            +
                  assert_equal 25, img.height
         | 
| 61 | 
            +
                  assert_equal 25, img.width
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
              end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
              def test_resize_floats
         | 
| 66 | 
            +
                ImageScience.with_image @path do |img|
         | 
| 67 | 
            +
                  img.resize(25.2, 25.7) do |thumb|
         | 
| 68 | 
            +
                    assert thumb.save(@tmppath)
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                assert File.exists?(@tmppath)
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                ImageScience.with_image @tmppath do |img|
         | 
| 75 | 
            +
                  assert_kind_of ImageScience, img
         | 
| 76 | 
            +
                  assert_equal 25, img.height
         | 
| 77 | 
            +
                  assert_equal 25, img.width
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
              end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
              def test_resize_zero
         | 
| 82 | 
            +
                assert_raises ArgumentError do
         | 
| 83 | 
            +
                  ImageScience.with_image @path do |img|
         | 
| 84 | 
            +
                    img.resize(0, 25) do |thumb|
         | 
| 85 | 
            +
                      assert thumb.save(@tmppath)
         | 
| 86 | 
            +
                    end
         | 
| 87 | 
            +
                  end
         | 
| 88 | 
            +
                end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                deny File.exists?(@tmppath)
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                assert_raises ArgumentError do
         | 
| 93 | 
            +
                  ImageScience.with_image @path do |img|
         | 
| 94 | 
            +
                    img.resize(25, 0) do |thumb|
         | 
| 95 | 
            +
                      assert thumb.save(@tmppath)
         | 
| 96 | 
            +
                    end
         | 
| 97 | 
            +
                  end
         | 
| 98 | 
            +
                end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                deny File.exists?(@tmppath)
         | 
| 101 | 
            +
              end
         | 
| 102 | 
            +
             | 
| 103 | 
            +
              def test_resize_negative
         | 
| 104 | 
            +
                assert_raises ArgumentError do
         | 
| 105 | 
            +
                  ImageScience.with_image @path do |img|
         | 
| 106 | 
            +
                    img.resize(-25, 25) do |thumb|
         | 
| 107 | 
            +
                      assert thumb.save(@tmppath)
         | 
| 108 | 
            +
                    end
         | 
| 109 | 
            +
                  end
         | 
| 110 | 
            +
                end
         | 
| 111 | 
            +
             | 
| 112 | 
            +
                deny File.exists?(@tmppath)
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                assert_raises ArgumentError do
         | 
| 115 | 
            +
                  ImageScience.with_image @path do |img|
         | 
| 116 | 
            +
                    img.resize(25, -25) do |thumb|
         | 
| 117 | 
            +
                      assert thumb.save(@tmppath)
         | 
| 118 | 
            +
                    end
         | 
| 119 | 
            +
                  end
         | 
| 120 | 
            +
                end
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                deny File.exists?(@tmppath)
         | 
| 123 | 
            +
              end
         | 
| 124 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -3,8 +3,8 @@ rubygems_version: 0.9.0.9 | |
| 3 3 | 
             
            specification_version: 1
         | 
| 4 4 | 
             
            name: image_science
         | 
| 5 5 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 6 | 
            -
              version: 1.1. | 
| 7 | 
            -
            date: 2007- | 
| 6 | 
            +
              version: 1.1.2
         | 
| 7 | 
            +
            date: 2007-04-18 00:00:00 -04:00
         | 
| 8 8 | 
             
            summary: ImageScience is a clean and happy Ruby library that generates thumbnails -- and kicks the living crap out of RMagick.
         | 
| 9 9 | 
             
            require_paths: 
         | 
| 10 10 | 
             
            - lib
         | 
| @@ -35,8 +35,10 @@ files: | |
| 35 35 | 
             
            - Rakefile
         | 
| 36 36 | 
             
            - bench.rb
         | 
| 37 37 | 
             
            - lib/image_science.rb
         | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 38 | 
            +
            - test/pix.png
         | 
| 39 | 
            +
            - test/test_image_science.rb
         | 
| 40 | 
            +
            test_files: 
         | 
| 41 | 
            +
            - test/test_image_science.rb
         | 
| 40 42 | 
             
            rdoc_options: []
         | 
| 41 43 |  | 
| 42 44 | 
             
            extra_rdoc_files: []
         |