lilimg 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/ext/lilimg/lilimg.c +9 -10
  3. data/lilimg.gemspec +1 -1
  4. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebd294b31f3e70b362e2ea3e65899816ce0a1329adaa5f54cef1a32d7b4d0c04
4
- data.tar.gz: 8c66eacaa0835cbd9aaf83664a144e611d3bd749c1b68f0f87d1f80001a73ed8
3
+ metadata.gz: ce074a06e27e4c1af28781cb5d650b426cec12239d6df43df8c07f9f8f367035
4
+ data.tar.gz: 88a75be93c92cf03eb86bf6a79b1bc9dda5d57b6bc46c9adb39140be036eba90
5
5
  SHA512:
6
- metadata.gz: ef5ef2c37a3fb2939f022fae50fe778239011c5161f775bc101b4b2a3bf85533e6e089b9f445bcc55a8e70c4d34f064014f0950750d6320570efc40f8fb64058
7
- data.tar.gz: 4d42648b3210b1d0669ab2f21c178519c137bd2f5a9ad399d47190c8f67483836c593e8c5cbd570d9beacbbfba7464e2fddb201152c3da9e7db17913fbc79808
6
+ metadata.gz: 70919b3d9efac337eac40c0b840906fa12160d6d6bc355a02b1cca6dba1eb88e85fcada7a839e99c2fffad03cbf686d16ac34b98a54c13a67140b5697b86da6b
7
+ data.tar.gz: 6e2cd74fbd469963759e4691f20b64b0807a578c9e1df29f94d14c69f20525af72dcfb1bb8a525f7c82bbfa5a18e5f9a3d53292678a35ebf20daf6a80369c232
data/ext/lilimg/lilimg.c CHANGED
@@ -8,8 +8,7 @@
8
8
 
9
9
  unsigned char * rgb_to_rgba(unsigned char * buf, int w, int h) {
10
10
  int newsize = 4 * w * h;
11
- unsigned char * dest;
12
- dest = malloc(newsize);
11
+ unsigned char * dest = (unsigned char *)malloc(newsize);
13
12
  int s = 0, d = 0;
14
13
  while (d < newsize) {
15
14
  dest[d++] = buf[s++];
@@ -21,10 +20,10 @@ unsigned char * rgb_to_rgba(unsigned char * buf, int w, int h) {
21
20
  return dest;
22
21
  }
23
22
 
24
- static VALUE jpeg_to_gif(VALUE self, VALUE buf) {
23
+ static VALUE jpeg_to_gif(VALUE self, VALUE buf, VALUE max_colors) {
25
24
  rb_check_type(buf, T_STRING);
26
25
 
27
- int maxColors = 255;
26
+ int maxColors = INT2NUM(max_colors);
28
27
  int size = RSTRING_LEN(buf);
29
28
  unsigned char * jpeg = (unsigned char *)StringValuePtr(buf);
30
29
 
@@ -36,15 +35,14 @@ static VALUE jpeg_to_gif(VALUE self, VALUE buf) {
36
35
  njInit();
37
36
 
38
37
  if (njDecode(jpeg, size)) {
39
- free((void*)jpeg);
38
+ free(jpeg);
40
39
  rb_raise(rb_eRuntimeError, "Error decoding input file (size %d)", size);
41
40
  return Qnil;
42
41
  }
43
42
 
44
- free((void*)jpeg);
45
-
46
43
  unsigned char * pixels = njGetImage();
47
44
  if (!pixels) {
45
+ free(jpeg);
48
46
  rb_raise(rb_eRuntimeError, "Couldn't decode image.");
49
47
  return Qnil;
50
48
  }
@@ -55,6 +53,7 @@ static VALUE jpeg_to_gif(VALUE self, VALUE buf) {
55
53
  // FILE * fp = fopen("output.gif", "wb");
56
54
 
57
55
  if (!fp) {
56
+ free(jpeg);
58
57
  rb_raise(rb_eRuntimeError, "Cannot initialize memstream");
59
58
  return Qnil;
60
59
  }
@@ -64,9 +63,9 @@ static VALUE jpeg_to_gif(VALUE self, VALUE buf) {
64
63
  jo_gif_frame(&gif, rgba, 0, 0);
65
64
  jo_gif_end(&gif);
66
65
 
67
- VALUE rstr;
68
- rstr = rb_str_new(out, bufsize);
66
+ VALUE rstr = rb_str_new(out, bufsize);
69
67
 
68
+ free(jpeg);
70
69
  free(rgba);
71
70
  free(out);
72
71
  njDone();
@@ -78,5 +77,5 @@ VALUE Lilimg = Qnil;
78
77
 
79
78
  void Init_lilimg() {
80
79
  Lilimg = rb_define_module("Lilimg");
81
- rb_define_module_function(Lilimg, "jpeg_to_gif", jpeg_to_gif, 1);
80
+ rb_define_module_function(Lilimg, "jpeg_to_gif", jpeg_to_gif, 2);
82
81
  }
data/lilimg.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'lilimg'
5
- s.version = '0.0.7'
5
+ s.version = '0.0.8'
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.authors = ['Tomas Pollak']
8
8
  s.email = ['tomas@forkhq.com']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lilimg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Pollak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-18 00:00:00.000000000 Z
11
+ date: 2018-02-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -21,6 +21,7 @@ files:
21
21
  - ".gitignore"
22
22
  - Rakefile
23
23
  - example/build.sh
24
+ - example/label.jpg
24
25
  - example/test.c
25
26
  - example/test.rb
26
27
  - ext/lilimg/extconf.rb