色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript修改圖片色調

陳怡靜1年前6瀏覽0評論

Javascript是一種常用的編程語言,可以用來修改圖片的色調。比如,我們可以用Javascript將彩色圖片變成黑白照片,或者改變亮度和色調等。通過下面的例子,我們可以看到Javascript是如何幫助我們完成這些任務的。

//將彩色圖片變成黑白照片
function convertToBW(image) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var imgW = image.width;
var imgH = image.height;
canvas.width = imgW;
canvas.height = imgH;
ctx.drawImage(image, 0, 0, imgW, imgH);
var imgData = ctx.getImageData(0, 0, imgW, imgH);
var data = imgData.data;
for (var i = 0; i < data.length; i += 4) {
var r = data[i];
var g = data[i + 1];
var b = data[i + 2];
var brightness = (3 * r + 4 * g + b) >>> 3;
data[i] = brightness;
data[i + 1] = brightness;
data[i + 2] = brightness;
}
ctx.putImageData(imgData, 0, 0);
return canvas.toDataURL();
}

在上面的代碼中,我們首先創建一個canvas元素,并獲取其2d上下文。然后,我們將原始圖片繪制到canvas中,并獲取圖像數據。我們通過計算每個像素的亮度來轉換為黑白照片,然后再繪制到canvas中,最后返回轉換后的圖像數據。

//改變圖片亮度和色調
function adjustColors(image, brightness, contrast, saturation) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var imgW = image.width;
var imgH = image.height;
canvas.width = imgW;
canvas.height = imgH;
ctx.drawImage(image, 0, 0, imgW, imgH);
var imgData = ctx.getImageData(0, 0, imgW, imgH);
var data = imgData.data;
brightness = brightness || 0;
contrast = contrast || 0;
saturation = saturation || 0;
var adjustBrightness = function (value) {
return value + brightness;
};
var adjustContrast = function (value) {
return value * contrast + (128 - 128 * contrast);
};
var adjustSaturation = function (value) {
var gray = 0.3 * value.r + 0.59 * value.g + 0.11 * value.b;
return {
r: (1 - saturation) * gray + saturation * value.r,
g: (1 - saturation) * gray + saturation * value.g,
b: (1 - saturation) * gray + saturation * value.b
};
};
for (var i = 0; i < data.length; i += 4) {
data[i] = adjustContrast(adjustBrightness(data[i]));
data[i + 1] = adjustContrast(adjustBrightness(data[i + 1]));
data[i + 2] = adjustContrast(adjustBrightness(data[i + 2]));
var color = {
r: data[i],
g: data[i + 1],
b: data[i + 2]
};
color = adjustSaturation(color);
data[i] = color.r;
data[i + 1] = color.g;
data[i + 2] = color.b;
}
ctx.putImageData(imgData, 0, 0);
return canvas.toDataURL();
}

在上面的代碼中,我們同樣創建了一個canvas元素,并獲取其2d上下文。然后,我們將原始圖片繪制到canvas中,并獲取圖像數據。我們通過傳入的參數來調整圖像的亮度、對比度和飽和度,然后再繪制到canvas中,最后返回調整后的圖像數據。

在實際的開發中,我們經常需要處理圖片,例如將彩色圖片轉換為黑白照片、改變亮度和色調等。通過使用Javascript,我們可以很容易地完成這些任務,且代碼非常簡潔,易于理解和維護。