2018 11 « 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31. »  2019 01

スポンサーサイト

 【--//--】

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Category: スポンサー広告

Comments (-)Trackbacks (-) | トップへ戻る

【PHP】ディレクトリ内の全てのJPEG画像の左下に、透過PNG画像のアイコン・ロゴなどを一括合成する

 【11//2017】

ブログを真面目に書いていこうと決めた矢先、

画像のサイズ変更して、

サイトのロゴを画像の左下に入れていく作業がめんどくさい!!


フォトショップでこうね・・・
めんどくさい

うん。

5枚で飽きた!!!

このままではまた飽きてブログ更新しなくなってしまう・・・

そんなわけで、

PHPで、指定したディレクトリ内のJPEG画像の左下に、透過PNG画像のアイコン・ロゴなどを一括合成するソースを書きましたw

なんでそんなものわざわざPHPで書くのかって?

PHPとか好きだから~~~~wwwww

折角なのでネタ的に、

書いたソースも公開しておく。

ソース公開する事ってあんま無いので、

書いとくと誰かの役に立ったり、突っ込みが入ったりするのだろうか?

ぱぱっと書いた簡単ソースだけどw




使い方は見たまんまです。
合成用のPNGイメージと、
合成したいJPEG画像が入ったディレクトリ、
JPEG画像出力先ディレクトリを指定して実行!
超簡単。

ディレクトリ内JPEG画像
00017.jpg

合成PNG
icon.png

出力JPEG
00017_20171211184705cf7.jpg




試してないけど、合成用のJPEGより大きいPNGを指定するとエラーになるのかな?
その辺は考えて画像指定するか、
自分でなおしてくださいww




###################################################################
#2017/12/11 @工房 櫟
#http://atkobo.com/
#http://atkobo.blog.fc2.com/
###################################################################

#合成するアイコンPNG指定
$icon = imagecreatefrompng("./modimg/common/icon.png");

#合成元JPGディレクトリ
$before_dir = "./modimg/before/";

#合成後出力ディレクトリ
$after_dir = "./modimg/after/";

#出力JPEGのクオリティ(default:75らしい)
$jquality = 100;

###################################################################



#アイコンのサイズ取得
$icon_width = imagesx($icon);
$icon_height = imagesy($icon);

#合成元のJPEG分繰り返し
foreach(glob( $before_dir.'{*.JPG,*.jpg,*.JPEG,*.jpeg}',(GLOB_BRACE + GLOB_NOSORT)) as $file){
if(is_file($file)){

#ファイル読み込み
$im = imagecreatefromjpeg($file);

#ファイルの高さ取得
$im_height = imagesy($im);

#左下に合成
imagecopy($im, $icon, 0, $im_height - $icon_height, 0, 0, $icon_width, $icon_height);

#出力用にファイル名取得
$fname = pathinfo($file, PATHINFO_BASENAME);

#JPEG書き出し
imagejpeg( $im, $after_dir . $fname, $jquality);

#メモリ開放
imagedestroy($im);

}
}





ブログに貼ったらタブインデント消えたな。

まあ、どんまいw


さてと、気を取り直して画像のサイズ変更していこう。
スポンサーサイト

Category: PHP

Tags : PHP プログラミング

Comments (0)Trackbacks (-) | トップへ戻る

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。