// transparent read method to load ldr image to dt_raw_image_t with exif and so on. dt_imageio_retval_t dt_imageio_open_ldr( dt_image_t *img, const char *filename, dt_mipmap_cache_allocator_t a) { dt_imageio_retval_t ret; ret = dt_imageio_open_tiff(img, filename, a); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->filters = 0; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; return ret; } ret = dt_imageio_open_png(img, filename, a); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->filters = 0; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; return ret; } #ifdef HAVE_OPENJPEG ret = dt_imageio_open_j2k(img, filename, a); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->filters = 0; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; return ret; } #endif ret = dt_imageio_open_jpeg(img, filename, a); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->filters = 0; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; return ret; } return DT_IMAGEIO_FILE_CORRUPTED; }
// transparent read method to load ldr image to dt_raw_image_t with exif and so on. dt_imageio_retval_t dt_imageio_open_ldr(dt_image_t *img, const char *filename, dt_mipmap_buffer_t *buf) { dt_imageio_retval_t ret; ret = dt_imageio_open_tiff(img, filename, buf); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->buf_dsc.filters = 0u; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; img->loader = LOADER_TIFF; return ret; } ret = dt_imageio_open_png(img, filename, buf); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->buf_dsc.filters = 0u; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; img->loader = LOADER_PNG; return ret; } #ifdef HAVE_OPENJPEG ret = dt_imageio_open_j2k(img, filename, buf); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->buf_dsc.filters = 0u; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; img->loader = LOADER_J2K; return ret; } #endif ret = dt_imageio_open_jpeg(img, filename, buf); if(ret == DT_IMAGEIO_OK || ret == DT_IMAGEIO_CACHE_FULL) { img->buf_dsc.filters = 0u; img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_HDR; img->flags |= DT_IMAGE_LDR; img->loader = LOADER_JPEG; return ret; } return DT_IMAGEIO_FILE_CORRUPTED; }