Seasons Приветствия.Удалить белый фон из изображения
Я использую код, который я нашел в переполнении стека, чтобы удалить белый фон.
function white2transparent(img)
{
var c = document.createElement('canvas');
var w = img.width, h = img.height;
c.width = w;
c.height = h;
var ctx = c.getContext('2d');
ctx.width = w;
ctx.height = h;
ctx.drawImage(img, 0, 0, w, h);
var imageData = ctx.getImageData(0,0, w, h);
var pixel = imageData.data;
var r=0, g=1, b=2,a=3;
for (var p = 0; p<pixel.length; p+=4)
{
if (
pixel[p+r] == 255 &&
pixel[p+g] == 255 &&
pixel[p+b] == 255) // if white then change alpha to 0
{pixel[p+a] = 0;}
}
ctx.putImageData(imageData,0,0);
return c.toDataURL('image/png');
}
Это не устранение всех белых, вот результат, который я получаю в своей местной копии.
Есть ли способ удалить весь белый фон с помощью JQuery или C#?
Поскольку пиксели остаются не * белый *. Для ex, '(255,255,255)! = (255,255,254)' Вам нужно некоторое пороговое значение ..... –
Все пиксели, которые вы хотите изменить, не полностью белые (255,255,255) –
О да, да, будут отфильтрованы аналогичные цвета. – CypherNet