图片处理 变相去除图片水印

通过,有无水印图片对比,合成新的无水印高清大图

要用到 PHP 的 GD 函数相信这个一般都有

<?php

// 获取 美食天下 无水印 800px 宽度大图
function getImage($url = '', $path = false){
    // 大图上 logo 大小
    $logo = [130, 30];

    $path = $path ? $path : __DIR__;
    $url = preg_replace('#@!.*$#', '', $url);
    $hash = md5($url);

    // 原图与新图 路径
    $originImage = $path .'/'. $hash .'.jpg';
    $newImage = $path .'/'. $hash .'-new.jpg';

    // 不存在原图 获取
    if(!file_exists($originImage)){
        $imageLarge = file_get_contents("{$url}@!p800");
        if(!$imageLarge){
            die('图片获取错误');
        }
        file_put_contents($originImage, $imageLarge);
    }

    // 不存在新图 获取并处理
    if(!file_exists($newImage)){
        $imageLarge = file_get_contents($originImage);

        $imageSmall = file_get_contents("{$url}@!c320");
        if(!$imageSmall){
            die('图片获取错误');
        }

        // 图片尺寸
        $largeSize = getimagesizefromstring($imageLarge);
        $smallSize = getimagesizefromstring($imageSmall);

        // 载入图片
        $imageLarge = imagecreatefromstring($imageLarge);
        $imageSmall = imagecreatefromstring($imageSmall);

        // 获取缩放比例
        $pct = min($largeSize[0], $largeSize[1]) / $smallSize[0];

        // logo 在小图上的大小
        $logo[] = $logo[0] / $pct;
        $logo[] = $logo[1] / $pct;

        // 复制图层 并调整大小
        imagecopyresized(
            $imageLarge,
            $imageSmall,
            ($largeSize[0] - $logo[0]) / 2, ($largeSize[1] - $logo[1]) / 2,
            ($smallSize[0] - $logo[2]) / 2, ($smallSize[1] - $logo[3]) / 2,
            $logo[0], $logo[1],
            $logo[2], $logo[3]
        );

        // 保存处理后 图片
        imagejpeg($imageLarge, $newImage);
    }
}





$url = [];

$url[] = 'http://i8.meishichina.com/attachment/recipe/201111/09/201111091427436.jpg@!p800';
$url[] = 'http://i8.meishichina.com/attachment/recipe/201012/201012091256171.jpg@!p800';
$url[] = 'http://i8.meishichina.com/attachment/recipe/2013/12/04/20131204105731447727573.jpg@!p800';
$url[] = 'http://i8.meishichina.com/attachment/recipe/2017/03/15/2017031514895532871017482619.jpg@!p800';


foreach($url as $u){
    getImage($u);
}

 

Post Author: admin