欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript修改圖片色調(diào)

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

//將彩色圖片變成黑白照片
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();
}

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

//改變圖片亮度和色調(diào)
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();
}

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

在實(shí)際的開發(fā)中,我們經(jīng)常需要處理圖片,例如將彩色圖片轉(zhuǎn)換為黑白照片、改變亮度和色調(diào)等。通過使用Javascript,我們可以很容易地完成這些任務(wù),且代碼非常簡(jiǎn)潔,易于理解和維護(hù)。