X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fjpeg.c;h=f9cdf414a16be5a67d23c7e1e0045a846f6e3561;hp=71483f6405fdb51a0c16a4dcb9a7797cb463afe7;hb=90aec6a9d4522c29c75bc85d5b4fd58e544fc3a3;hpb=1156b837ecba6c70557454017ab8eb70d3974bef diff --git a/lib/jpeg.c b/lib/jpeg.c index 71483f6..f9cdf41 100644 --- a/lib/jpeg.c +++ b/lib/jpeg.c @@ -124,6 +124,45 @@ int jpeg_save(unsigned char*data, int width, int height, int quality, const char return 1; } +int jpeg_save_gray(unsigned char*data, int width, int height, int quality, const char*filename) +{ + struct jpeg_destination_mgr mgr; + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; + + if(filename) fi = fopen(filename, "wb"); + else fi = 0; + + memset(&cinfo, 0, sizeof(cinfo)); + memset(&jerr, 0, sizeof(jerr)); + memset(&mgr, 0, sizeof(mgr)); + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_compress(&cinfo); + + mgr.init_destination = file_init_destination; + mgr.empty_output_buffer = file_empty_output_buffer; + mgr.term_destination = file_term_destination; + cinfo.dest = &mgr; + cinfo.image_width = width; + cinfo.image_height = height; + cinfo.input_components = 1; + cinfo.in_color_space = JCS_GRAYSCALE; + jpeg_set_defaults(&cinfo); + jpeg_set_quality(&cinfo,quality,TRUE); + jpeg_start_compress(&cinfo, FALSE); + int t; + for(t=0;t