Changeset View
Changeset View
Standalone View
Standalone View
source/blender/imbuf/intern/jpeg.c
| Show First 20 Lines • Show All 407 Lines • ▼ Show 20 Lines | else { | ||||
| MEM_freeN(str); | MEM_freeN(str); | ||||
| next_stamp_marker: | next_stamp_marker: | ||||
| marker = marker->next; | marker = marker->next; | ||||
| } | } | ||||
| jpeg_finish_decompress(cinfo); | jpeg_finish_decompress(cinfo); | ||||
| } | } | ||||
| jpeg_destroy((j_common_ptr)cinfo); | |||||
| if (ibuf) { | if (ibuf) { | ||||
| /* Density_unit may be 0 for unknown, 1 for dots/inch, or 2 for dots/cm. */ | |||||
| if (cinfo->density_unit == 1) { | |||||
| /* Convert inches to meters. */ | |||||
| ibuf->ppm[0] = cinfo->X_density / 0.0254f; | |||||
| ibuf->ppm[1] = cinfo->Y_density / 0.0254f; | |||||
| } | |||||
| else if (cinfo->density_unit == 2) { | |||||
| ibuf->ppm[0] = cinfo->X_density * 100.0f; | |||||
| ibuf->ppm[1] = cinfo->Y_density * 100.0f; | |||||
| } | |||||
| ibuf->ftype = IMB_FTYPE_JPG; | ibuf->ftype = IMB_FTYPE_JPG; | ||||
| ibuf->foptions.quality = MIN2(ibuf_quality, 100); | ibuf->foptions.quality = MIN2(ibuf_quality, 100); | ||||
| } | } | ||||
| jpeg_destroy((j_common_ptr)cinfo); | |||||
| } | } | ||||
| return ibuf; | return ibuf; | ||||
| } | } | ||||
| ImBuf *imb_load_jpeg(const unsigned char *buffer, | ImBuf *imb_load_jpeg(const unsigned char *buffer, | ||||
| size_t size, | size_t size, | ||||
| int flags, | int flags, | ||||
| ▲ Show 20 Lines • Show All 225 Lines • Show Last 20 Lines | |||||