PHP プログラミングを使用する場合、画像の著作権とソースを確認するために、アップロードされた画像に透かしを追加する必要があることがよくありますが、通常、透かしの位置は画像の右下隅です。異なる画像のウォーターマークは画像自体のカラー レベルと異なる場合があります。これにより、ウォーターマークが目立たなくなります。次のコードは、画像のカラー レベルを自動的に識別し、ウォーターマークを追加します。 */- 関数 add_wm($nmw_water, $src_file, $x, $ y) {
- if(file_exists($output_file))
- return;
-
- $w1 = MagickGetImageWidth($nmw_water)
-
- $nmw =NewMagickWand(); , $src_file);
-
- // デフォルトのウォーターマーク位置調整
- $lt_w = 50;
- $w = MagickGetImageWidth($nmw); MagickGetImageHeight($nmw);
-
- $y = $h ;
- }else{
- // 特定の状況に応じて調整します
- $lt_w = 30;
-
- ($nmw, $nmw_water, MW_OverCompositeOp, $x - $w1 - $lt_w, $y - $h1 - $lt_h);
- MagickWand($nmw); // Groovy の eachFileRecurse はやはり使いやすいです
- function add_wm_recurse($nmw_water, $to_dir, $output_dir , $arr) {
- $dp = dir($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);
- if(!array_key_exists($to_dir) . '/' . $arr)){
-
- $sub_arr = $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 = './resize'
- $output_dir = './output';は座標配列 (posX , posY) です
- $arr = array(
- array(50, 50)
- );
- $water = './water.png'
- MagickReadImage($) nmw_water, $water);
-
- add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr);
-
-
- コードをコピーします
-
-
-
-
-
-
-
php
-
-
-
-
-
-
-
-
|