勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPにて指定した画像に対して、繰り返し透かし画像処理する方法

  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

  関連記事

Gif画像に再生ボタンを設置し、ユーザーの操作により再生⇔停止が行える「gifffer」ライブラリの利用方法
Gif画像に再生ボタンを設置し、ユーザーの操作により再生⇔停止が行える「gifffer」ライブラリの利用方法

あるページにGif画像を設置し、当該画像が表示されても自動再生させず、再生ボタン ...

WordPressのMedia Library Organizerでダイアログ初回表示時のカテゴリを指定する方法
WordPressのMedia Library Organizerでダイアログ初回表示時のカテゴリを指定する方法

Media Library Organizerを使用中のWPサイトで画像をカテゴ ...

バニラJS対応(jQuery非依存)の画像遅延読み込みライブラリ「lazysizes」の利用方法
バニラJS対応(jQuery非依存)の画像遅延読み込みライブラリ「lazysizes」の利用方法

あるサイトのコーディングデータを貰った際に「lazysizes」というJavaS ...

画像にマウスを合わせると拡大表示させる「drift」ライブラリの利用方法
画像にマウスを合わせると拡大表示させる「drift」ライブラリの利用方法

amazon等ECサイトで商品画像にマウスを合わせると当該部分が拡大表示されると ...

summernoteのデフォルトの画像挿入時にCSSや任意の属性を指定する方法
summernoteのデフォルトの画像挿入時にCSSや任意の属性を指定する方法

summernoteのデフォルトの画像挿入時はBase64形式にエンコードされ、 ...