Refactor transparency detection

main
Isaiah Odhner 2019-09-21 02:04:59 -04:00
parent 69146d7279
commit f7c0d431c5
1 changed files with 7 additions and 8 deletions

View File

@ -824,22 +824,21 @@ function select_tool(tool, toggle){
// $toolbox2.update_selected_tool(); // $toolbox2.update_selected_tool();
} }
// TODO: factor this into a simple (pure) function, to be used like: function has_any_transparency(ctx) {
// transparency = has_any_transparency(ctx);
function detect_transparency(){
transparency = false;
// @TODO Optimization: Assume JPEGs and some other file types are opaque. // @TODO Optimization: Assume JPEGs and some other file types are opaque.
// Raster file formats that SUPPORT transparency include GIF, PNG, BMP and TIFF // Raster file formats that SUPPORT transparency include GIF, PNG, BMP and TIFF
// (Yes, even BMPs support transparency!) // (Yes, even BMPs support transparency!)
var id = ctx.getImageData(0, 0, canvas.width, canvas.height); var id = ctx.getImageData(0, 0, canvas.width, canvas.height);
for(var i=0, l=id.data.length; i<l; i+=4){ for(var i=0, l=id.data.length; i<l; i+=4){
if(id.data[i+3] < 255){ if(id.data[i+3] < 255){
transparency = true; return true;
return;
} }
} }
return false;
}
function detect_transparency(){
transparency = has_any_transparency(ctx);
} }
function make_monochrome_pattern(lightness){ function make_monochrome_pattern(lightness){