勉強したことのメモ

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

PHPで画像にモザイクをかけて保存

   2024/01/12  PHP

やりたかった事はPHPで

・モザイク処理
・元の画像とは別にファイル名をつけて保存
・jpgだけでOK

■参考サイト
http://pentan.info/php/sample/img_mosaic.html

■ソース
<?
$mosaic = 5; //モザイクの程度を設定
$path = './img/dog.jpg';

list($img_width,$img_height,$type)=getimagesize($path);
if(!($src=imagecreatefromjpeg($path))){
header("Content-Type: image/jpeg");
readfile($path);
}

//モザイク処理
$img_width_m = intval($img_width/$mosaic);
$img_height_m = intval($img_height/$mosaic);
$dst_m=imagecreatetruecolor($img_width_m,$img_height_m);
imagecopyresampled($dst_m,$src,0,0,0,0,$img_width_m,$img_height_m,$img_width,$img_height);
$dst=imagecreatetruecolor($img_width,$img_height);
imagecopyresampled($dst,$dst_m,0,0,0,0,$img_width,$img_height,$img_width_m,$img_height_m);

imagejpeg($dst,'./img/dogs.jpg');//別名で保存
?>

縮小して拡大するだけでモザイクがかかるというのは驚き。
$mosaicの値を変えるとモザイクの程度も変わるので、
面白いものが作られそう。

 - PHP

  関連記事

フォームで画像をとりあつかう際にBase64エンコードした上で送信する方法
フォームで画像をとりあつかう際にBase64エンコードした上で送信する方法

PHP等サーバサイド系の言語は利用不可(JSは利用可)な環境でformを作成し画 ...

JavaScriptで画像読み込み完了のタイミングを検知する「imagesLoaded」ライブラリの利用方法
JavaScriptで画像読み込み完了のタイミングを検知する「imagesLoaded」ライブラリの利用方法

大き目のサイズの画像をページに設置すると読み込み完了まで時間がかかる。その画像が ...

「slick」でブラウザ幅がPCの場合はスライダーを表示し、スマホ幅の場合はスライダー無しにする方法
「slick」でブラウザ幅がPCの場合はスライダーを表示し、スマホ幅の場合はスライダー無しにする方法

slickプラグインで画像スライダーを設置しているページがあり、PCのブラウザ幅 ...

ajaxを使わずに非同期っぽくsubmitする
ajaxを使わずに非同期っぽくsubmitする

ajaxを使わずに見た目はページ遷移せず、 画像を含めたformをsubmitし ...

フォームからアップロードした画像にPHPで任意のテキストを追加する方法
フォームからアップロードした画像にPHPで任意のテキストを追加する方法

以前フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を追加する記事 ...