Можно ли как-то из canvas вытащить 24bit картинку?
У меня есть canvas из которого я вытягиваю картинку, но у нее глубина цвета всегда 32бит. Можно ли как-то получить картинку 24 бит?
const canv = document.createElement('canvas');
const c = canv.getContext('2d');
c.drawImage(image, 0, 0);
Ответы (1 шт):
Автор решения: IvaMuxa
→ Ссылка
Для этого нужно сохранить без альфа-канала, например в формате JPEG. Переход по ссылке откроет изображение, его можно сохранить правой кнопкой
var canvas = document.getElementById('canvas');
canvas.width = 50;
canvas.height = 50;
var d = canvas.width;
ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(d / 2, 0);
ctx.lineTo(d, d);
ctx.lineTo(0, d);
ctx.closePath();
ctx.fillStyle = 'yellow';
ctx.fill();
var a1 = document.createElement('a');
a1.textContent = 'скачать jpg';
document.body.appendChild(a1);
a1.href = canvas.toDataURL('image/jpeg', 1);
a {
display: block;
}
<canvas id="canvas"></canvas>