Thumbnail cache file format depending on existance of alpha layer
Use PNG if image has alpha layer, JPG if not. Fixes issue #209
This commit is contained in:
parent
9264a65c19
commit
d8114e841c
2
Makefile
2
Makefile
|
@ -1,4 +1,4 @@
|
||||||
VERSION := git-20150518
|
VERSION := git-20150722
|
||||||
|
|
||||||
PREFIX := /usr/local
|
PREFIX := /usr/local
|
||||||
MANPREFIX := $(PREFIX)/share/man
|
MANPREFIX := $(PREFIX)/share/man
|
||||||
|
|
12
thumbs.c
12
thumbs.c
|
@ -48,9 +48,9 @@ char* tns_cache_filepath(const char *filepath)
|
||||||
|
|
||||||
if (strncmp(filepath, cache_dir, strlen(cache_dir)) != 0) {
|
if (strncmp(filepath, cache_dir, strlen(cache_dir)) != 0) {
|
||||||
/* don't cache images inside the cache directory! */
|
/* don't cache images inside the cache directory! */
|
||||||
len = strlen(cache_dir) + strlen(filepath) + 6;
|
len = strlen(cache_dir) + strlen(filepath) + 2;
|
||||||
cfile = (char*) s_malloc(len);
|
cfile = (char*) s_malloc(len);
|
||||||
snprintf(cfile, len, "%s/%s.jpg", cache_dir, filepath + 1);
|
snprintf(cfile, len, "%s/%s", cache_dir, filepath + 1);
|
||||||
}
|
}
|
||||||
return cfile;
|
return cfile;
|
||||||
}
|
}
|
||||||
|
@ -101,8 +101,12 @@ void tns_cache_write(Imlib_Image im, const char *filepath, bool force)
|
||||||
}
|
}
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
imlib_context_set_image(im);
|
imlib_context_set_image(im);
|
||||||
imlib_image_set_format("jpg");
|
if (imlib_image_has_alpha()) {
|
||||||
imlib_image_attach_data_value("quality", NULL, 90, NULL);
|
imlib_image_set_format("png");
|
||||||
|
} else {
|
||||||
|
imlib_image_set_format("jpg");
|
||||||
|
imlib_image_attach_data_value("quality", NULL, 90, NULL);
|
||||||
|
}
|
||||||
imlib_save_image_with_error_return(cfile, &err);
|
imlib_save_image_with_error_return(cfile, &err);
|
||||||
}
|
}
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
|
|
Loading…
Reference in New Issue