ホームページ  >  記事  >  バックエンド開発  >  画像に透かしを追加する PHP コード

画像に透かしを追加する PHP コード

WBOY
WBOYオリジナル
2016-07-25 08:46:10814ブラウズ

PHP プログラミングを使用する場合、画像の著作権とソースを確認するために、アップロードされた画像に透かしを追加する必要があることがよくありますが、通常、透かしの位置は画像の右下隅です。異なる画像のウォーターマークは画像自体のカラー レベルと異なる場合があります。これにより、ウォーターマークが目立たなくなります。次のコードは、画像のカラー レベルを自動的に識別し、ウォーターマークを追加します。

    */
  1. 関数 add_wm($nmw_water, $src_file, $x, $ y) {
  2. if(file_exists($output_file))
  3. return;
  4. $w1 = MagickGetImageWidth($nmw_water)
  5. $nmw =NewMagickWand(); , $src_file);
  6. // デフォルトのウォーターマーク位置調整
  7. $lt_w = 50;
  8. $w = MagickGetImageWidth($nmw); MagickGetImageHeight($nmw);
  9. $y = $h ;
  10. }else{
  11. // 特定の状況に応じて調整します
  12. $lt_w = 30;
  13. ($nmw, $nmw_water, MW_OverCompositeOp, $x - $w1 - $lt_w, $y - $h1 - $lt_h);
  14. MagickWand($nmw); // Groovy の eachFileRecurse はやはり使いやすいです
  15. function add_wm_recurse($nmw_water, $to_dir, $output_dir , $arr) {
  16. $dp = dir($to_dir)
  17. while($file=$dp->read(); ){
  18. if($file != '.' && $file != ' ..'){
  19. if(is_dir($to_dir . '/' . $file)){
  20. mkdir($output_dir . '/' . $file);
  21. add_wm_recurse($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $arr);
  22. if(!array_key_exists($to_dir) . '/' . $arr)){
  23. $sub_arr = $arr . '/'
  24. $x = intval ($sub_arr[0]);
  25. $y = intval($sub_arr[1]);
  26. add_wm($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $x, $y);
  27. }
  28. }
  29. }
  30. }
  31. $dp->close() ;
  32. }
  33. $to_dir = './resize'
  34. $output_dir = './output';は座標配列 (posX , posY) です
  35. $arr = array(
  36. array(50, 50)
  37. );
  38. $water = './water.png'
  39. MagickReadImage($) nmw_water, $water);
  40. add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr);
  41. コードをコピーします
  42. php
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。