pikl 0.1.0

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/test/sample.jpg ADDED
Binary file
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/pikl'
data/test/test_pikl.rb ADDED
@@ -0,0 +1,13 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestPikl < Test::Unit::TestCase
4
+
5
+ def setup
6
+
7
+ end
8
+
9
+ def test_truth
10
+ assert_equal(true, true)
11
+ end
12
+
13
+ end
@@ -0,0 +1,262 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestPiklImage < Test::Unit::TestCase
4
+
5
+ SAMPLE_IMAGE = File.dirname(__FILE__) + '/sample.jpg'
6
+ SAMPLE_OUTPUT = File.dirname(__FILE__) + '/output.jpg'
7
+
8
+ SAMPLE_IMAGE_W = 768
9
+ SAMPLE_IMAGE_H = 1024
10
+
11
+ def setup
12
+
13
+ end
14
+
15
+ def teardown
16
+ if File.exists? SAMPLE_OUTPUT
17
+ File.delete SAMPLE_OUTPUT
18
+ end
19
+ end
20
+
21
+ def test_width_height
22
+ # + test open method without block.
23
+ img = Pikl::Image.open(SAMPLE_IMAGE)
24
+ assert_equal(SAMPLE_IMAGE_W, img.width)
25
+ assert_equal(SAMPLE_IMAGE_H, img.height)
26
+ img.close()
27
+
28
+ end
29
+
30
+ def test_trim
31
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
32
+
33
+ img.trim(0,0,:auto,:auto)
34
+ assert_equal(SAMPLE_IMAGE_W, img.width)
35
+ assert_equal(SAMPLE_IMAGE_H, img.height)
36
+ img.save(SAMPLE_OUTPUT)
37
+
38
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
39
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
40
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
41
+ end
42
+
43
+ img.trim(5,10,:auto,:auto)
44
+ assert_equal(SAMPLE_IMAGE_W-5, img.width)
45
+ assert_equal(SAMPLE_IMAGE_H-10, img.height)
46
+ img.save(SAMPLE_OUTPUT)
47
+
48
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
49
+ assert_equal(SAMPLE_IMAGE_W-5, imgout.width)
50
+ assert_equal(SAMPLE_IMAGE_H-10, imgout.height)
51
+ end
52
+
53
+ img.trim(0,0,-1,-3)
54
+ assert_equal(SAMPLE_IMAGE_W-5-1, img.width)
55
+ assert_equal(SAMPLE_IMAGE_H-10-3, img.height)
56
+ img.save(SAMPLE_OUTPUT)
57
+
58
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
59
+ assert_equal(SAMPLE_IMAGE_W-5-1, imgout.width)
60
+ assert_equal(SAMPLE_IMAGE_H-10-3, imgout.height)
61
+ end
62
+
63
+ img.trim(2,3,4,5)
64
+ assert_equal(4, img.width)
65
+ assert_equal(5, img.height)
66
+ img.save(SAMPLE_OUTPUT)
67
+
68
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
69
+ assert_equal(4, imgout.width)
70
+ assert_equal(5, imgout.height)
71
+ end
72
+
73
+ #bad args
74
+ assert_raise(Pikl::ParameterException){img.trim(0,0,0,0)}
75
+
76
+ end
77
+
78
+ end
79
+
80
+ def test_rotate
81
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
82
+
83
+ img.rotate(90)
84
+ assert_equal(SAMPLE_IMAGE_H, img.width)
85
+ assert_equal(SAMPLE_IMAGE_W, img.height)
86
+ img.save(SAMPLE_OUTPUT)
87
+
88
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
89
+ assert_equal(SAMPLE_IMAGE_H,imgout.width)
90
+ assert_equal(SAMPLE_IMAGE_W,imgout.height)
91
+ end
92
+
93
+ img.rotate(90)
94
+ assert_equal(SAMPLE_IMAGE_W, img.width)
95
+ assert_equal(SAMPLE_IMAGE_H, img.height)
96
+ img.save(SAMPLE_OUTPUT)
97
+
98
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
99
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
100
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
101
+ end
102
+
103
+ img.rotate(180)
104
+ assert_equal(SAMPLE_IMAGE_W, img.width)
105
+ assert_equal(SAMPLE_IMAGE_H, img.height)
106
+ img.save(SAMPLE_OUTPUT)
107
+
108
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
109
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
110
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
111
+ end
112
+
113
+ img.rotate(270)
114
+ assert_equal(SAMPLE_IMAGE_H, img.width)
115
+ assert_equal(SAMPLE_IMAGE_W, img.height)
116
+ img.save(SAMPLE_OUTPUT)
117
+
118
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
119
+ assert_equal(SAMPLE_IMAGE_H,imgout.width)
120
+ assert_equal(SAMPLE_IMAGE_W,imgout.height)
121
+ end
122
+
123
+ end
124
+ end
125
+
126
+ def test_resize
127
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
128
+ img.resize(50,:auto)
129
+ img.save(SAMPLE_OUTPUT)
130
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
131
+ assert_equal(50,imgout.width)
132
+ assert_equal((SAMPLE_IMAGE_H*50/SAMPLE_IMAGE_W).to_i,imgout.height)
133
+ end
134
+ end
135
+ end
136
+
137
+ def test_effect
138
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
139
+ img.unshapmask(255, 10)
140
+ img.save(SAMPLE_OUTPUT)
141
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
142
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
143
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
144
+ end
145
+
146
+ img.contrast(127)
147
+ img.save(SAMPLE_OUTPUT)
148
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
149
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
150
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
151
+ end
152
+
153
+ img.level(1.0, 0.1, 0.95)
154
+ img.save(SAMPLE_OUTPUT)
155
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
156
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
157
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
158
+ end
159
+
160
+ img.brightness(1)
161
+ img.save(SAMPLE_OUTPUT)
162
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
163
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
164
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
165
+ end
166
+
167
+ img.hls(1,1,113.2)
168
+ img.save(SAMPLE_OUTPUT)
169
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
170
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
171
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
172
+ end
173
+
174
+ img.gamma(1.5)
175
+ img.save(SAMPLE_OUTPUT)
176
+ Pikl::Image.open(SAMPLE_OUTPUT) do |imgout|
177
+ assert_equal(SAMPLE_IMAGE_W,imgout.width)
178
+ assert_equal(SAMPLE_IMAGE_H,imgout.height)
179
+ end
180
+ end
181
+ end
182
+
183
+ def test_validate_trim
184
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
185
+ assert_nil(img.validate_trim(0,0,1,1))
186
+
187
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,0,0,0)}
188
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,0,0,1)}
189
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,0,1,0)}
190
+
191
+ assert_raise(Pikl::ParameterException){img.validate_trim("A",0,1,1)}
192
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,"B",1,1)}
193
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,0,"C",1)}
194
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,0,1,"D")}
195
+
196
+ assert_nil(img.validate_trim(0,0,1,:auto))
197
+ assert_nil(img.validate_trim(0,0,:auto,1))
198
+ assert_nil(img.validate_trim(0,0,:auto,:auto))
199
+
200
+ assert_nil(img.validate_trim(0,0,1,Pikl::PIX_LIMIT))
201
+ assert_nil(img.validate_trim(0,0,Pikl::PIX_LIMIT,1))
202
+ assert_nil(img.validate_trim(0,0,Pikl::PIX_LIMIT,Pikl::PIX_LIMIT))
203
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,0,1,Pikl::PIX_LIMIT+1)}
204
+ assert_raise(Pikl::ParameterException){img.validate_trim(0,0,Pikl::PIX_LIMIT+1,1)}
205
+
206
+ assert_nil(img.validate_trim(0,0,1,-1))
207
+ assert_nil(img.validate_trim(0,0,-1,1))
208
+ end
209
+
210
+ end
211
+
212
+ def test_validate_rotate
213
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
214
+
215
+ assert_raise(Pikl::ParameterException){img.validate_rotate(15)}
216
+ assert_nil(img.validate_rotate(0))
217
+ assert_nil(img.validate_rotate(90))
218
+ assert_nil(img.validate_rotate(180))
219
+ assert_nil(img.validate_rotate(270))
220
+ assert_nil(img.validate_rotate(360))
221
+
222
+ end
223
+
224
+ end
225
+
226
+ def test_validate_resize
227
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
228
+
229
+ assert_raise(Pikl::ParameterException){ img.validate_resize("hoge",900) }
230
+ assert_raise(Pikl::ParameterException){ img.validate_resize(600,"fuga") }
231
+
232
+ assert_raise(Pikl::ParameterException){img.validate_resize(30,Pikl::PIX_LIMIT+1)}
233
+ assert_raise(Pikl::ParameterException){img.validate_resize(Pikl::PIX_LIMIT+1,10)}
234
+ assert_nil(img.validate_resize(30,Pikl::PIX_LIMIT))
235
+ assert_nil(img.validate_resize(Pikl::PIX_LIMIT,10))
236
+
237
+ assert_raise(Pikl::ParameterException){img.validate_resize(30,0)}
238
+ assert_raise(Pikl::ParameterException){img.validate_resize(0,10)}
239
+ assert_nil(img.validate_resize(1,10))
240
+ assert_nil(img.validate_resize(10,1))
241
+
242
+ assert_raise(Pikl::ParameterException){img.validate_resize(:auto,:auto)}
243
+ assert_nil(img.validate_resize(600,:auto))
244
+ assert_nil(img.validate_resize(:auto,6))
245
+
246
+ end
247
+ end
248
+
249
+ def test_format
250
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
251
+ assert_equal(Pikl::JPEG, img.format)
252
+ end
253
+ end
254
+
255
+ def test_compress
256
+ Pikl::Image.open(SAMPLE_IMAGE) do |img|
257
+ img.trim(5,10,:auto,:auto)
258
+ img.save(SAMPLE_OUTPUT,Pikl::JPEG,5)
259
+ end
260
+ end
261
+
262
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.2
3
+ specification_version: 1
4
+ name: pikl
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.1.0
7
+ date: 2008-05-01 00:00:00 +09:00
8
+ summary: Simple Image Lib.
9
+ require_paths:
10
+ - lib
11
+ - ext
12
+ email:
13
+ - FIXME email
14
+ homepage: http://pikl.rubyforge.org
15
+ rubyforge_project: pikl
16
+ description: Simple Image Lib.
17
+ autorequire:
18
+ default_executable:
19
+ bindir: bin
20
+ has_rdoc: true
21
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
22
+ requirements:
23
+ - - ">"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.0.0
26
+ version:
27
+ platform: ruby
28
+ signing_key:
29
+ cert_chain:
30
+ post_install_message:
31
+ authors:
32
+ - Ryota Maruko
33
+ files:
34
+ - History.txt
35
+ - License.txt
36
+ - Manifest.txt
37
+ - README.txt
38
+ - Rakefile
39
+ - config/hoe.rb
40
+ - config/requirements.rb
41
+ - ext/pikl/extconf.rb
42
+ - ext/pikl/pikl.h
43
+ - ext/pikl/pikl_bitmap.c
44
+ - ext/pikl/pikl_bitmap.h
45
+ - ext/pikl/pikl_effect.c
46
+ - ext/pikl/pikl_effect.h
47
+ - ext/pikl/pikl_io.c
48
+ - ext/pikl/pikl_io.h
49
+ - ext/pikl/pikl_jpeg.c
50
+ - ext/pikl/pikl_jpeg.h
51
+ - ext/pikl/pikl_png.c
52
+ - ext/pikl/pikl_png.h
53
+ - ext/pikl/pikl_private.h
54
+ - ext/pikl/pikl_resize.c
55
+ - ext/pikl/pikl_resize.h
56
+ - ext/pikl/pikl_rotate.c
57
+ - ext/pikl/pikl_rotate.h
58
+ - ext/pikl/pikl_trim.c
59
+ - ext/pikl/pikl_trim.h
60
+ - lib/pikl.rb
61
+ - lib/pikl/const.rb
62
+ - lib/pikl/errors.rb
63
+ - lib/pikl/ext.rb
64
+ - lib/pikl/image.rb
65
+ - lib/pikl/version.rb
66
+ - setup.rb
67
+ - test/sample.jpg
68
+ - test/test_helper.rb
69
+ - test/test_pikl.rb
70
+ - test/test_pikl_image.rb
71
+ test_files:
72
+ - test/test_helper.rb
73
+ - test/test_pikl.rb
74
+ - test/test_pikl_image.rb
75
+ rdoc_options:
76
+ - --main
77
+ - README.txt
78
+ extra_rdoc_files:
79
+ - History.txt
80
+ - License.txt
81
+ - Manifest.txt
82
+ - README.txt
83
+ executables: []
84
+
85
+ extensions:
86
+ - ext/pikl/extconf.rb
87
+ requirements: []
88
+
89
+ dependencies: []
90
+