This article illustrates how PHP adds watermarks to different locations based on the color boundaries of the image. Share to everyone for your reference. The implementation method is as follows:
function Add_wm ($NMW _water, $src _file, $output _file, $x, $y) {if (file_exists ($output _file)) return;
$w 1 = magickgetimagewidth ($NMW _water);
$h 1 = magickgetimageheight ($NMW _water);
$NMW =newmagickwand ();
Magickreadimage ($NMW, $src _file);
The default watermark position adjustment $lt _w = 50;
$lt _h = 50;
if ($x = = 0) {$w = Magickgetimagewidth ($NMW);
$h = Magickgetimageheight ($NMW);
$x = $w;
$y = $h;
}else{//Adjusted $LT _w = 30 According to the specific conditions;
$lt _h = 40;
Magickcompositeimage ($NMW, $NMW _water, Mw_overcompositeop, $x-$w 1-$lt _w, $y-$h 1-$lt _h);
Magickwriteimage ($NMW, $output _file);
Destroymagickwand ($NMW); //or Groovy eachfilerecurse. function Add_wm_recurse ($NMW _water, $to _dir, $output _dir, $arr) {$DP = d
IR ($to _dir); while ($file = $DP->read ()) {if ($file!= '. ' && $file!= ' ... '){if (Is_dir $to _dir.) '/' . $file)) {mkdir ($output _dir). '/' .
$file); Add_wm_recurse ($NMW _water, $to _dir. '/' . $file, $output _dir. '/' .
$file, $arr); }else{if (!array_key_exists ($to _dir. '/' .
$file, $arr)) {continue; $sub _arr = $arr [$to _dir. '/' .
$file];
if ($sub _arr) {$x = Intval ($sub _arr[0]);
$y = Intval ($sub _arr[1]); ADD_WM ($NMW _water, $to _dir. '/' . $file, $output _dir. '/' .
$file, $x, $y);
$DP->close ()}}};
} $to _dir = './resized ';
$output _dir = './output ';
This is the coordinate array (POSX, posy) $arr = Array (Array (50, 50)) that matches the color of the trousers with the Java ImageIO traversing the image pixel;
$water = './water.png ';
$NMW _water =newmagickwand ();
Magickreadimage ($NMW _water, $water); Add_wm_recurse ($NMW _water, $to _dir, $output _dIR, $arr);
Destroymagickwand ($NMW _water);
I hope this article will help you with your PHP programming.