PHPでの画像の処理は、特にGDライブラリを使用する場合に非常に強力です。この記事では、ImageFlip()およびImageFilter()関数を介してレトロミラーイメージ効果を作成する方法を示します。この特殊効果は、レトロな写真撮影や映画スタイルの画像処理で一般的に使用されており、実用的で芸術的です。
まず、パスが次のと仮定して、元の画像が必要です。
$source = 'https://m66.net/images/sample.jpg';
ローカル画像またはオンラインリソースを使用できますが、画像形式がサポートされているタイプ(JPEG、PNGなど)であることを確認してください。
ImageCreateFromJPeg()を使用して画像をロードし、 ImageFlip()を介して水平方向のフリップを達成して画像効果をシミュレートします。
<?php
$source = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($source);
// ミラー処理:水平フリップ
imageflip($image, IMG_FLIP_HORIZONTAL);
ここでは、 IMG_FLIP_HORIZONTALを使用しています。垂直方向または双方向にフリップする場合は、 IMG_FLIP_VETICALやIMG_FLIP_BOTHなどの他のモードを試すこともできます。
次に、 ImageFilter()を介してレトロフィルターを追加します。一般的なレトロスタイルには、通常、飽和度の低減、日焼けトーン(セピア)の追加が含まれます。
// グレースケール画像に変換します
imagefilter($image, IMG_FILTER_GRAYSCALE);
// 黄色のトーンオーバーレイ,レトロな感触を作成します
imagefilter($image, IMG_FILTER_COLORIZE, 100, 50, 0);
// コントラストを増やします,強化効果
imagefilter($image, IMG_FILTER_CONTRAST, -15);
これらのフィルターを組み合わせると、画像に古い写真のテクスチャーが斑点のある年になります。
処理が完了したら、画像をブラウザに直接出力したり、新しいファイルとして保存したりできます。
// ブラウザに画像を出力します
header('Content-Type: image/jpeg');
imagejpeg($image);
// または新しいファイルとして保存します
// imagejpeg($image, 'vintage_mirror.jpg');
// リソースをクリーンアップします
imagedestroy($image);
?>
より洗練されたフィルターコントロールが必要な場合は、複数のImageFilter()を複数回検討し、異なる数値の組み合わせを試すことができます。
PHPのGDライブラリはプロフェッショナルな画像処理ソフトウェアほど良くありませんが、Webプロジェクトでの画像の処理は、ほとんどのニーズを満たすのに十分です。
この機能を動的なWebサイト( https://m66.net/portfolio.phpなど)で使用している場合は、サーバーにGDサポートが有効になっていることを確認してください。
上記のコードをテストページに埋め込み、ブラウザで開くことができ、リアルタイムで生成されたレトロミラー化された画像を表示できます。対話性を強化する場合は、HTMLフォームを組み合わせて、ユーザーが画像をアップロードし、フィルターを自動的に適用する機能を実現することもできます。