Бих искал да мога да открия дали изображение тип лого има прозрачен фон или не, нека си представим, че две подобни изображения са .png
файлове, но едното има бял фон, а другото има прозрачен фон, как бих могъл да определи този с прозрачност?
Опитах да използвам colorthief, но той не отчита прозрачността, така че реших да го направя сам на canvas
. Първото решение би било да преобразувате файла png
в jpg
и ако цветът на фона на jpg
след преобразуването изглежда черен, това е прозрачно лого, но това може да е проблем за потребители с черен фон и бели лога. Има ли по-добро решение от това?
от png към jpg :
var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);
var canvas = document.getElementById('imageCanvas');
var ctx = canvas.getContext('2d');
function handleImage(e){
var reader = new FileReader();
reader.onload = function(event){
var img = new Image();
img.onload = function(){
canvas.width = 100;
canvas.height = 100;
ctx.drawImage(img,0,0, 100, 100);
document.getElementById("image").src = canvas.toDataURL("image/jpeg");
}
img.src = event.target.result;
}
reader.readAsDataURL(e.target.files[0]);
}
data
, съдържащо едномерен масив от цели числа, R , G, B и A стойност за всеки пиксел, само един след друг. - person CBroe   schedule 15.07.2017