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:
		
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
VERSION   := git-20150518
 | 
			
		||||
VERSION   := git-20150722
 | 
			
		||||
 | 
			
		||||
PREFIX    := /usr/local
 | 
			
		||||
MANPREFIX := $(PREFIX)/share/man
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								thumbs.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								thumbs.c
									
									
									
									
									
								
							@@ -48,9 +48,9 @@ char* tns_cache_filepath(const char *filepath)
 | 
			
		||||
	
 | 
			
		||||
	if (strncmp(filepath, cache_dir, strlen(cache_dir)) != 0) {
 | 
			
		||||
		/* 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);
 | 
			
		||||
		snprintf(cfile, len, "%s/%s.jpg", cache_dir, filepath + 1);
 | 
			
		||||
		snprintf(cfile, len, "%s/%s", cache_dir, filepath + 1);
 | 
			
		||||
	}
 | 
			
		||||
	return cfile;
 | 
			
		||||
}
 | 
			
		||||
@@ -101,8 +101,12 @@ void tns_cache_write(Imlib_Image im, const char *filepath, bool force)
 | 
			
		||||
			}
 | 
			
		||||
			if (err == 0) {
 | 
			
		||||
				imlib_context_set_image(im);
 | 
			
		||||
				if (imlib_image_has_alpha()) {
 | 
			
		||||
					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);
 | 
			
		||||
			}
 | 
			
		||||
			if (err == 0) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user