PHPにて指定した画像に対して、繰り返し透かし画像処理する方法
画像素材等のサイトで無料版の画像に対して「sample」等の透かし画像処理を行っているケースが多い。また、この透かし画像処理は1度だけではなく、元画像全体に対して繰り返し処理されている場合が多い(元画像に対してsampleという文字がたくさん表示されている状態)。これをPHPで再現したい。以下に対応方法をメモ。
サンプル
処理前
処理後
対応方法
ソースコード
ソースコードは参考サイトとほぼ同じもの。元画像、透かし画像、処理後の画像名は適宜変更すること。
<?php //元画像 $image = new Imagick('001.jpg'); //透かし画像 $watermark = new Imagick('watermark.png'); $geo = $image->getImageGeometry(); $x = $geo['width']; $y = $geo['height']; $geo_stamp = $watermark->getImageGeometry(); $sx = $geo_stamp['width']; $sy = $geo_stamp['height']; for( $i = 0; $i <= round($x / $sx) + 1; $i++ ){ for( $j = 0; $j <= round($y / $sy) + 1; $j++ ){ $image->compositeImage( $watermark, $watermark->getImageCompose(), ($i * $sx), ($j * $sy)); } } //処理後の画像 $image->writeImage('001_watermark.jpg');
注意点
ImageMagickが導入されている必要がある点に注意すること。
所感
その内class.upload.phpを使う形に作り替えたいところ。
参考サイト
https://gist.github.com/MahinAbbasianpoor/90c23b25841c415a39d4
関連記事
-
-
PHPにて「ImageHash」ライブラリを使用し画像の類似度を算出する方法
以前にPHPの「image-comparator」ライブラリで画像の類似度を算出 ...
-
-
PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...
-
-
PHPで画像にモザイクをかけて保存
やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...
-
-
smart_resize_imageで縦横の比率関係なく、固定リサイズ
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...
-
-
PHPで画像を分割し並べ替えて出力したものをJavaScriptで復元する方法
ある電子書籍サイトをブラウザの開発者ツールで見てみたところ、PHPでページ画像を ...