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
関連記事
-
-
Lightboxで文字をクリックしたら画像を表示させる方法
Lightboxを使用する際、一般的に使われているのはサムネイル画像をクリックす ...
-
-
summernoteにギャラリーから画像を挿入する機能を追加する方法
summernoteの画像機能はデフォルトだと「画像ファイルを選ぶ」「URLから ...
-
-
summernoteのデフォルトの画像挿入時にCSSや任意の属性を指定する方法
summernoteのデフォルトの画像挿入時はBase64形式にエンコードされ、 ...
-
-
FileReader APIを用いて画像をアップロードせずにサムネイル表示
以前にFile APIを用いてファイル名やサイズ、形式(拡張子)を取得するメモを ...
-
-
summernoteで画像選択時にサーバにファイルをアップロードする方法
summernoteで画像を選択した際、ファイルはアップロードされずBase64 ...

