ͼƬȥˮӡ¹¦ÄܵÄʵÏÖ
±¾Ìû×îºóÓÉ xue5hen ÓÚ 2022-12-16 12:49 ±à¼¡¾ÔÀí·ÖÎö¡¿
ΪÁ˱ãÓÚ·ÖÎöÔÀí£¬ÎÒдÁËÒ»¸ö¼òµ¥µÄDemo£¬ÈçÏÂͼËùʾ£¬ÔÚDemoÒ³ÃæÖÐÓÐÈýÕŵ¥É«Í¼Æ¬£¬µÚÒ»ÕÅÔʼͼÊÇÑÕɫΪ#999µÄ»ÒɫͼƬ£¬µÚ¶þÕÅˮӡͼÊÇÑÕɫΪ#fff͸Ã÷¶ÈΪ0.7µÄͼƬ£¬µÚÈýÕŽá¹ûͼÊÇÇ°Á½ÕÅͼƬºÏ³ÉÒÔºóµÃµ½µÄͼƬ¡£
ÔÚÓÒ²àµÄ¿ØÖÆ̨´òÓ¡³öÁËÕâÈýÕÅͼƬµÄÊý¾Ý£¨Êý¾ÝÊÇͨ¹ýcanvas»²¼ÖеÄgetImageData·½·¨»ñÈ¡µ½µÄ£©£¬´ÓÊý¾ÝÖпÉÒÔ¿´µ½£¬ÈýÕÅͼƬµÄ¿í¸ß¾ùΪ100ÏñËØ£¬Êý¾Ý³¤¶È¾ùΪ40000¡£¿ÉÒÔ¿´³ö£¬Ã¿ÕÅͼƬÓÐ100*100¸öÏñËص㣬ÿ¸öÏñËصãÓÃ4¸ö³¤¶ÈÀ´±íʾ£¬·Ö±ðÊÇR£¨ºì£©¡¢G£¨ÂÌ£©¡¢B£¨À¶£©¡¢A£¨Í¸Ã÷¶È£©¡£
½ÓÏÂÀ´£¬¶Ô±ÈÏÂÈýÕÅͼƬÊý¾ÝÓкβ»Í¬£¬ÔͼƬºÍˮӡͼµÄÊý¾ÝÊÇÔõôµÃµ½½á¹ûͼµÄÊý¾ÝµÄ£¿ÉÔ΢Ïëһϣ¬Ó¦¸Ã¿ÉÒԵóöÒ»¸ö˼·£ºË®Ó¡Í¼µÄ͸Ã÷¶ÈΪ0.7£¬Òâζ×ÅËüµÄÉ«ÖµÔÚ½á¹ûͼÖÐÕ¼µÄ±ÈÖØÊÇ70%£¬ÔʼͼÒòΪ±»Ë®Ó¡Í¼ÕÚµ²£¬ËùÒÔÕ¼µÄ±ÈÖØÊÇÊ£ÓàµÄ30%¡£ÓÚÊÇ£¬153 ¡Á 0.3 + 255 ¡Á 0.7= 224.4£¬ÏòÉÏÈ¡ÕûºóΪ225£¬ÕýºÃÓë½á¹ûͼÖÐÊý¾ÝÏàµÈ¡£
¡¾¹¦ÄÜʵÏÖ¡¿
ʵ¼ùÊǼìÑéÀíÂÛµÄΨһÊֶΡ£¸ù¾ÝÉÏÊö²Â²âµÄ¼ÆË㷽ʽ£¬Èç¹ûÒÑÖª½á¹ûͼºÍˮӡͼ£¬ÄÇôӦ¸Ã¾Í¿ÉÒÔÍÆËã³öÀ´Ôʼͼ¡£²»¹ýÐèҪ׼±¸ºÃÓë´ý´¦ÀíͼƬÏà¶ÔÓ¦µÄˮӡͼƬ£¬È·±£ËüÃǵijߴç´óСºÍˮӡλÖÃÊÇÒ»Öµģ¬·ñÔò¿¿³ÌÐò×Ô¼ºÈ¥²Â²âˮӡλÖõĻ°£¬ÐèÒª¶îÍ⸴ÔÓµÄËã·¨ºÍºÜ´óµÄ¼ÆËãÁ¿Ö§³Å¡£
ÕâÀïÎÒÉè¼ÆµÄ³ÌÐò½çÃæÈçÏ£º
³ÌÐòÉÏ·½ÊDzÎÊýÅäÖ㬿ÉÒÔÉèÖÃˮӡͼƬºÍÏÂÔØĿ¼£¬×ó²àÇøÓòÊÇ´ý´¦ÀíͼƬÁбíÇø£¬¿ÉÒÔ½«´ý´¦ÀíµÄͼƬÍÏק½øÀ´£¬ÓÒ²àÇøÓòÊÇͼƬԤÀÀÇøÓò£¬µãÑ¡×ó²àijһÌõÊý¾Ý¿ÉÒÔ¶ÔÆä½øÐÐÔ¤ÀÀ¡£
³ÌÐòȥˮӡµÄ¹Ø¼ü´úÂëÈçÏ£º
// »ñÈ¡imgData
getImgData (imgObj) {
let canvasObj = document.createElement('canvas')
canvasObj.width = imgObj.width
canvasObj.height = imgObj.height
let ctx = canvasObj.getContext('2d')
ctx.drawImage(imgObj, 0, 0, canvasObj.width, canvasObj.height)
let imgData = ctx.getImageData(0, 0, canvasObj.width, canvasObj.height)
return imgData.data
}
let imgData = this.imagesList.imgData
let imgData_sy = this.watermarkInfo.imgData
if (imgData.length !== imgData_sy.length) {
this.$toast('´ý´¦ÀíͼƬÓëˮӡͼƬ´óС²»Ò»ÖÂ')
return reject('´ý´¦ÀíͼƬÓëˮӡͼƬ´óС²»Ò»ÖÂ')
}
let bakColor = null
for (let i = imgData.length - 4; i > -1; i -= 4) {
if (!imgData_sy) {
bakColor = , imgData, imgData, imgData]
continue
} else if (imgData_sy === 255 && bakColor) {
imgData = bakColor
imgData = bakColor
imgData = bakColor
imgData = bakColor
continue
}
let opacity_sy = imgData_sy / 255
let opacity_raw = (255 - imgData_sy) / 255
imgData = (imgData - imgData_sy * opacity_sy) / opacity_raw
imgData = (imgData - imgData_sy * opacity_sy) / opacity_raw
imgData = (imgData - imgData_sy * opacity_sy) / opacity_raw
if (imgData > 0 && imgData < 255) {
imgData = (imgData - imgData_sy) / opacity_raw
}
}
this.imagesList.imgData = imgData
// imgData2dataUrl
let canvasObj = document.createElement('canvas')
canvasObj.width = item.imgObj.width
canvasObj.height = item.imgObj.height
let ctx = canvasObj.getContext('2d')
let imageData = new ImageData(imgData, canvasObj.width, canvasObj.height)
ctx.putImageData(imageData, 0, 0)
¾²â£¬³£¼ûµÄˮӡ¿ÉÒÔÕý³£È¥³ý£»¶ÔÓÚ²»Í¸Ã÷µÄˮӡ£¬ÕâÀï²ÉÓõÄÊÇʹÓø½½üµÄͼƬɫֵÀ´Ìæ´ú£»¼ÙÉèÔʼͼƬ±¾ÉíÒ²ÊÇ°ë͸Ã÷£¬ÕâÖÖÇé¿öÏ£¬Í¸Ã÷¶ÈºÃ¼ÆË㣬µ«É«Öµ¼ÆËã´æÔÚЩÐíÎó²î£¬²»¹ýºÃÔÚÕâÖÖÇé¿öÔÚÏÖʵÖÐÏà¶Ô½ÏÉÙ¡£
ͼƬȥˮӡÕâÖÖ¹¦ÄÜ£¬ÓÃͼÎıí´ï¶àÉÙÓеã²Ô°×£¬¸½ÉÏÊÓƵչʾ£ºhttps://www.bilibili.com/video/BV1KV4y1A7wT/
iore ·¢±íÓÚ 2022-12-16 12:13
àÅ£¬ÓÐʱºòˮӡȷʵºÜ¶ñÐÄ
ÓÐûÓпÉÄÜ£¬Äã˵µÄÊÇÂíÈü¿Ë..{:1_886:} Õâ¸ö²»´í¡£²»ÖªµÀÔõôÓà xiaojian40 ·¢±íÓÚ 2022-12-16 12:55
ÓÐûÓпÉÄÜ£¬Äã˵µÄÊÇÂíÈü¿Ë..
ÕûͦºÃ👍👍👍
лл·ÖÏí£¡ºÜNBµÄ½Ì³Ì£¡ ѧϰÁ˵«²»ÖªµÀÔõôÓà ֧³ÖһϠàÅ£¬ÓÐʱºòˮӡȷʵºÜ¶ñÐÄ{:1_926:} ✍🏻ûÓÐŬÁ¦µÄÃÎÏë¾ÍÊÇÍýÏë С°×ѧϰÁËÊÓƵ£¬È¥Ë®Ó¡Ð§¹ûͦºÃµÄ£¬ÆÚ´ý´óÀгÉÆ··ÖÏí¡£ лл·ÖÏí£¡ºÜNBµÄ½Ì³Ì£¡ ÎÄÈËÄ«¿Í ·¢±íÓÚ 2022-12-16 12:10
Õâ¸ö²»´í¡£²»ÖªµÀÔõôÓÃ
Ôõô»ñÈ¡ÄØ ¸´ÔÓµÄˮӡÄÜÓÃÕâÖÖ·½·¨Âð Õâ¸öºÃ£¬Ò»¼üˮӡ³ýÈ¥