pngdefry 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Readme.markdown +9 -0
- data/ext/pngdefry/pngdefry.c +24 -3
- data/lib/pngdefry/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e822644b0565eafcb0b240e580dc23887c3c35d
|
4
|
+
data.tar.gz: b20c17f4151685075cd42cd7aac58c4b2bda7870
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f8be23cdd0e0e75335b58ab8507377d6358bdd18c2fd467deb8421756b2799e4add12d7c8533de964c6a85c503311ac648476f3aece4fc84306552660e7453c
|
7
|
+
data.tar.gz: eeb34ec2cd7e38fbd56398f7bfee51ddfcfafe841c688894ea4a48b968c816a05b83ab87f91048d3dcf99706695a6d5658639ea736fd74d7f95a4174c98a33ef
|
data/Readme.markdown
CHANGED
@@ -20,10 +20,19 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
+
To defry an image, call `defry`:
|
24
|
+
|
23
25
|
``` ruby
|
24
26
|
Pngdefry.defry('input.png', 'output.png')
|
25
27
|
```
|
26
28
|
|
29
|
+
If you just need the dimensions, you can simply call `dimensions`:
|
30
|
+
|
31
|
+
``` ruby
|
32
|
+
Pngdefry.dimensions('input.png')
|
33
|
+
#=> [58, 58]
|
34
|
+
```
|
35
|
+
|
27
36
|
## Contributing
|
28
37
|
|
29
38
|
1. Fork it
|
data/ext/pngdefry/pngdefry.c
CHANGED
@@ -388,7 +388,7 @@ void applyRowFilters (int wide, int high, unsigned char *data)
|
|
388
388
|
}
|
389
389
|
}
|
390
390
|
|
391
|
-
int process (char *filename, char *write_file_name)
|
391
|
+
int process (char *filename, char *write_file_name, unsigned int *width, unsigned int *height)
|
392
392
|
{
|
393
393
|
FILE *f;
|
394
394
|
unsigned int length;
|
@@ -613,6 +613,13 @@ int process (char *filename, char *write_file_name)
|
|
613
613
|
}
|
614
614
|
imgwidth = read_long (&ihdr_chunk->data[4]);
|
615
615
|
imgheight = read_long (&ihdr_chunk->data[8]);
|
616
|
+
|
617
|
+
if (!write_file_name) {
|
618
|
+
*width = imgwidth;
|
619
|
+
*height = imgheight;
|
620
|
+
return 1;
|
621
|
+
}
|
622
|
+
|
616
623
|
bitdepth = ihdr_chunk->data[12];
|
617
624
|
colortype = ihdr_chunk->data[13];
|
618
625
|
compression = ihdr_chunk->data[14];
|
@@ -1130,7 +1137,7 @@ int process (char *filename, char *write_file_name)
|
|
1130
1137
|
free (data_out);
|
1131
1138
|
}
|
1132
1139
|
|
1133
|
-
if (
|
1140
|
+
if (write_file_name)
|
1134
1141
|
{
|
1135
1142
|
if (!didShowName)
|
1136
1143
|
{
|
@@ -1272,15 +1279,29 @@ int process (char *filename, char *write_file_name)
|
|
1272
1279
|
VALUE Pngdefry = Qnil;
|
1273
1280
|
void Init_pngdefry();
|
1274
1281
|
VALUE method_pngdefry_defry(VALUE self, VALUE input, VALUE output);
|
1282
|
+
VALUE method_pngdefry_dimensions(VALUE self, VALUE input);
|
1275
1283
|
|
1276
1284
|
void Init_pngdefry() {
|
1277
1285
|
Pngdefry = rb_define_module("Pngdefry");
|
1278
1286
|
rb_define_singleton_method(Pngdefry, "defry", method_pngdefry_defry, 2);
|
1287
|
+
rb_define_singleton_method(Pngdefry, "dimensions", method_pngdefry_dimensions, 1);
|
1279
1288
|
}
|
1280
1289
|
|
1281
1290
|
VALUE method_pngdefry_defry(VALUE self, VALUE input, VALUE output) {
|
1282
1291
|
char *filename = StringValueCStr(input);
|
1283
1292
|
char *outputFilename = StringValueCStr(output);
|
1284
|
-
int result = process(filename, outputFilename);
|
1293
|
+
int result = process(filename, outputFilename, NULL, NULL);
|
1285
1294
|
return INT2FIX(result);
|
1286
1295
|
}
|
1296
|
+
|
1297
|
+
VALUE method_pngdefry_dimensions(VALUE self, VALUE input) {
|
1298
|
+
char *filename = StringValueCStr(input);
|
1299
|
+
unsigned int width = 0;
|
1300
|
+
unsigned int height = 0;
|
1301
|
+
int result = process(filename, NULL, &width, &height);
|
1302
|
+
|
1303
|
+
VALUE array = rb_ary_new();
|
1304
|
+
rb_ary_store(array, 0, INT2FIX(width));
|
1305
|
+
rb_ary_store(array, 1, INT2FIX(height));
|
1306
|
+
return array;
|
1307
|
+
}
|
data/lib/pngdefry/version.rb
CHANGED