聊聊腳本去圖片水印實(shí)現(xiàn)原理
今天我們就來(lái)說(shuō)說(shuō),腳本去圖片水印的實(shí)現(xiàn)原理。那并不是任何網(wǎng)站都可以破解會(huì)員,是因?yàn)橛行┚W(wǎng)站不夠建全,我們可以利用一些前端知識(shí)來(lái)繞過(guò)付費(fèi)。
首先我們進(jìn)入圖片制作網(wǎng)站,選擇一張會(huì)員才可以使用的模板。

然后根據(jù)自己的需求制作圖片即可。
制作完成到下載的時(shí)候就需要我們把水印去掉,這樣才可以正常使用。
?在頁(yè)面點(diǎn)擊f12,在 HTML 中搜索 water ,我們可以搜索到帶水印的 div,然后把水印圖片去掉。就可以實(shí)現(xiàn)去水印了。 原理就是通過(guò)這一行代碼實(shí)現(xiàn)去水印了, 現(xiàn)在我們可以使用截圖工具截圖保存即可。


其實(shí)設(shè)計(jì)網(wǎng)站實(shí)現(xiàn)圖片下載,一般由 2 種方式:
第一種: 使用一個(gè)前端庫(kù) dom-to-img 來(lái)實(shí)現(xiàn)
第二種: 使用服務(wù)器 puppeteer 截圖實(shí)現(xiàn)。
第一種方式就是它自帶的按鈕
第二種服務(wù)端生成:當(dāng)我們點(diǎn)擊上面的(下載帶水?。┌粹o,我們可以看到它的 2 個(gè)請(qǐng)求接口,其中有一個(gè)請(qǐng)求帶參數(shù) waterMark 值為 1 ,那么是否是改成 0, 就沒(méi)有水印了呢?
第二個(gè)接口可以通過(guò)第一個(gè)接口返回的 uid,獲得下載圖片的地址。那么我們就可以自己模擬請(qǐng)求這個(gè) 2 個(gè)接口,來(lái)實(shí)現(xiàn)這一個(gè)功能。
代碼分析
首先我們通過(guò) require 加入 jquery,方便我們 dom 操作,然后通過(guò)一個(gè)定時(shí)器,在 dom 加載之后,往右上角插入一個(gè)無(wú)水印下載的按鈕。
點(diǎn)擊這個(gè)按鈕,模擬調(diào)用剛才的 2 個(gè)接口,并且發(fā)送參數(shù):bid、圖片的寬度、高度。
bid: 也就是 url 上的 id。
圖片寬度和高度:也就是頁(yè)面上輸入的值。
最后我們通過(guò)接口返回的圖片地址,使用 window.open 方法實(shí)現(xiàn)圖片下載。
是不是很簡(jiǎn)單呢?你學(xué)會(huì)了嗎?