画像の縮小や切り抜きができるPHPクラスライブラリ「Zebra_Image」の使い方メモ。
Zebra_Imageは画像のリサイズや切り抜き、上下左右反転、フィルターかえなど、いろいろ簡単にできるライブラリです。
ダウンロードはこちらから
Zebra_Image, a lightweight image manipulation library written in PHP
2015/1/31現在、ページ全体の真ん中らへんの「Download]っていうところからダウンロードできます。
使ってみます
ファイル配置
ファイルは下記のような配置。
「original」には加工したい元のファイルが入ってるものとします。
ルート
├zebra_image.php
├index.php
├original
└generate
サンプルコード(index.php)
[php]<?php
//Zebra_Image読み込み
require_once(“./zebra_image.php”);
function gen($image, $w, $h) {
$src = new Zebra_Image();
//画質設定
$src->jpeg_quality = 100;
//元の画像ファイル指定
$src->source_path = $image;
$name = preg_replace(“/^.*\/(.*)\.jpg$/”, “$1”, $image);
//左上を起点にリサイズして切り抜き
$src->target_path = “./generate/{$name}-{$w}x{$h}-1.jpg”;
$src->resize($w, $h, ZEBRA_IMAGE_CROP_TOPLEFT);
//中央を起点にリサイズして切り抜き
$src->target_path = “./generate/{$name}-{$w}x{$h}-2.jpg”;
$src->resize($w, $h, ZEBRA_IMAGE_CROP_MIDDLELEFT);
//左下を起点にリサイズして切り抜き
$src->target_path = “./generate/{$name}-{$w}x{$h}-3.jpg”;
$src->resize($w, $h, ZEBRA_IMAGE_CROP_BOTTOMLEFT);
}
//検索に使用する文字を指定
$key = htmlspecialchars($_GET[‘key’], ENT_QUOTES);
//指定のファイル名から対象のファイルをピックアップ
$images = glob(“./original/{$key}*.jpg”);
//それぞれ指定サイズに書き出し
for($i=0,$n=count($images); $i<$n; $i++) {
gen($images[$i], 616, 120);
gen($images[$i], 266, 110);
gen($images[$i], 480, 120);
gen($images[$i], 280, 140);
}
?>[/php]
解説
指定の文字が含まれるファイル名のjpgをリストアップして、それぞれ616×120、266×110、480×120、280x140pxの上中下部分でリサイズして切り出し保存しますって感じです。
zebra_imageのところはfunction gen($image, $w, $h)の中です。
Zebra_Imageのマニュアルはこちら↓
Zebra_Image, a lightweight image manipulation library written in PHP – Class Zebra_Image
Zebra_Imageの使い方でした
楽天市場とかDeNAショッピングなどなど、複数のモールでネットショップを運営しているんだけど、規定のバナーサイズがありまして。
それをいちいち手作業でリサイズしたりしているととても煩わしい。
ので、全然バナー入れ替えできてなかったりする。
そこで、思いついた。
なんにもやらないより多少雑?でもバナーを入れ替えたほうがいいんではないかと。
そんなわけで「指定の画像を指定のサイズに切り抜きするPHP」を作ろうと。
それでZebra_Imageを使ってみました。
616x120pxとかはその関係のサイズです。
簡単なコードでリサイズとか切り抜きとかができるすごく便利なライブラリです。
とくに、リサイズしてからの切り抜きが簡単にできるので、その点は以前に紹介したclass.image.phpより素敵な感じです。
(よく調べてないけど、class.image.phpは1つの加工しかできないっぽい感じだった)
ただ、加工したファイルはどこかしらに保存しないとダメっぽい。
保存せずに表示したい場合は、show()で表示のみできるclass.image.phpが便利です。