Как сохранить цвета изображения, когда я снижаю общую непрозрачность до почти прозрачной? (HTML JavaScript)Html

Программисты Html
Ответить
Anonymous
 Как сохранить цвета изображения, когда я снижаю общую непрозрачность до почти прозрачной? (HTML JavaScript)

Сообщение Anonymous »

Когда я преобразую изображение в почти прозрачный (1% непрозрачности), либо с использованием Imagedata , либо Globalallpha , исходные данные цвета теряются при конверсии. Когда я открываю сохраненное изображение в любом программном обеспечении для редактирования изображений (я проверил, и программное обеспечение для редактирования изображений здесь не является проблемой) и возвращаю там полную непрозрачность, я замечаю, что остаются только 16 или 24 цвета. Изображение выглядит так, как будто он был постеризирован.const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
const data = imageData.data;

ctx2.clearRect(0, 0, canvas2.width, canvas2.height);

for (let i = 0; i < data.length; i += 4) {
const red = data;
const green = data[i + 1];
const blue = data[i + 2];
const alpha = data[i + 3];
if (alpha == 0 || (red == 0 && green == 0 && blue == 0)) {
// black pixels become fully transparent
data = 0; // Red
data[i + 1] = 0; // Green
data[i + 2] = 0; // Blue
data[i + 3] = 0; // Alpha
} else {
// all other pixels turn almost transparent
data[i + 3] = 255 * 0.01;
}
}
ctx2.putImageData(imageData, 0, 0);
< /code>
Я попытался использовать Globalalpha и обнаружил, что качество было снижено. Затем я попытался использовать Imagedata, потому что я думал, что это сохранит данные изображения, поскольку я изменял сам данные изображения (или значения массива или цвета, которые содержит изображение), но он также не сработал. Я также проверил с непрозрачностью, которая чуть выше 1% (примерно 3%) и увидел, что снижение качества цвета было меньше, поэтому я предполагаю, что потеря качества цвета была из -за некоторых вычислений с прозрачными пикселями.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ity-to-alm
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»