+void jpeg_get_size(const char *filename, int *width, int *height)
+{
+ struct jpeg_decompress_struct cinfo;
+ struct jpeg_error_mgr jerr;
+ FILE *fi;
+ *width = 0;
+ *height = 0;
+ cinfo.err = jpeg_std_error(&jerr);
+ cinfo.image_width = 0;
+ cinfo.image_height = 0;
+ jpeg_create_decompress(&cinfo);
+ if ((fi = fopen(filename, "rb")) == NULL) {
+ fprintf(stderr, "couldn't open %s\n", filename);
+ return;
+ }
+ jpeg_stdio_src(&cinfo, fi);
+ jpeg_read_header(&cinfo, TRUE);
+ *width = cinfo.image_width;
+ *height = cinfo.image_height;
+ jpeg_destroy_decompress(&cinfo);
+ fclose(fi);
+}
+