PHPプログラムに関する各種メモ書き:タグ「画像」での検索

phpのimagemagickで画像を正方形に切り抜く

画像のサムネイルを作成したい場合にphpで自動でできると便利です。 そこでimagemagickを使用します。

ディレクトリ【data】の中に入っている画像【my.jpg】を写真中央で正方形に切り抜き【th_my.jpg】で保存する

$data_dir = 'data';
$input_image  = "my.jpg";
$output_image = "th_".$input_image;

$image = file_get_contents("{$data_dir}/$input_image");
$im = new Imagick();
$im->pingImageBlob($image);
$org_width  = $im->getImageWidth();
$org_height = $im->getImageHeight();
echo 'original image size : ' . $org_width . ' x ' . $org_height ."<br>\n";

$size = $org_width;
if ( $org_width > $org_height){ $size = $org_height; }

$width  = $size;
$height = $size;
$im->readImage("{$data_dir}/$input_image");
$im->cropThumbnailImage($width, $height);
$im->writeImage("{$data_dir}/$output_image");
echo "thumbnail created : {$data_dir}/$output_image";
No.994
01/08 15:55

edit

画像

PHPから日本語フォントを使ってPDFを生成、出力する【TCPDF】

PHPから動的にPDFを生成し出力やプリントするには古くは【FPDF】を使用しましたが、現在では【TCPDF】を使用します。 TCPDFを利用するメリットは以下のとおり

・文字コード「UTF-8」が使用できる
・TTFフォントを変換しなくても使用できる(自動変換が行われる)

#1. TCPDFのダウンロードと設置 http://sourceforge.net/projects/tcpdf/files/ からダウンロードしてフォルダごとサーバにアップロード

#2. フォント(.ttf)のアップロード 【tcpdf/fonts】の中に【ttf】フォルダを作ってそこにフォントファイルをアップロードします。

#3. TCPDFを使ったPHPからのPDF出力 デフォルトで入っている「Hrlvetica」と自分でアップロードした「IPAゴシック」を使ってPDF出力する例
「IPAゴシック」のフォントファイルは http://ipafont.ipa.go.jp/old/ipafont/download.html からダウンロードし ( ./tcpdf/fonts/ttf/ipaexg.ttf )に置いておきます

require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF("L", "mm", "A4", true, "UTF-8" );
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AddPage();
$font = new TCPDF_FONTS();
// フォント:helvetica
$font_0 = $font->addTTFfont( 'フォントファイルまでのフルパス/helvetica.php');
$pdf->SetFont($font_0 , '', 32,'',true);
$pdf->Text(0, 0, "alphabetica ABCDEFG" );
// フォント:IPAゴシック
$font_1 = $font->addTTFfont('フォントファイルまでのフルパス/ipaexg.ttf');
$pdf->SetFont($font_1 , '', 32,'',true);
$pdf->Text(0, 15, "美しい日本語のフォントを表示" );
$pdf->Output("cd_cover_template.pdf", "I");
No.967
11/18 14:02

edit

pdf
日本語
画像

画像ファイルの width, height を取得して挿入するSmarty Plugin

画像ファイルの width, height を取得して挿入するSmarty Plugin

ファイル名 : modifier.image_wh.php で保存

<?php
function smarty_modifier_image_wh($file_name='') {
    if (! $file_name ) { return "error:{$file_name}"; }
    if (!is_file($file_name)) { return "error:{$file_name}"; }
    list($width, $height, $type, $attr) = getimagesize($file_name);
    if ($width && $height){
        return 'width="' .$width. '" height="'.$height.'"';
    }
    else{
        return "error: can not get width height:{$file_name}";
    }
}

使い方

<img src="{$image_file}" {$image_file|image_wh} />{/if}

とすると width="100" height="200" といった情報が入ります。

なお変数に入ったディレクトリも指定する場合は

{$image_file|image_wh}
  ↓
{"`$data_dir`/`$image_file`"|image_wh}

とします。


No.833
01/05 11:43

edit

Smarty
画像
ファイル

PHPで画象をトリミング・縮小し、正方形のサムネイルを作成する

PHPで画象をトリミング・縮小し、正方形のサムネイルを作成するには【GD】【ImageMagick】などのライブラリを使用するのが簡単でおすすめです。

GD(resizeimg.class.phpという便利なクラス)を使用する

http://www.oldoffice.co.jp/php_demo/gd.php

(またはこのエントリーの一番下↓でもダウンロード出来ます。)

require_once("resizeimg.class.php");
$ri = new resizeImage();
$input_image =  "images/bluehills.jpg";    //元画像ファイルパス(URLでも可)
$width = 80;
$height = 80;
$output_image = $ri->dispResizeImgPath($input_image,$width,$height);

// サイズを自動計算させるには数値の代わりに * を入れる
$output_image = $ri->dispResizeImgPath($input_image,$width,'*');

// ※指定サイズの枠内に収まるように ※第4引数に「ss」で縮小のみに指定

ImageMagickを使用する

$width = 200;
$height = 200;
//Imagick
$image = new imagick();
$image->readImage('sample.jpg');
$image->cropThumbnailImage($width, $height);
$image->writeImage('sample_imagick.jpg');

添付ファイル1
No.800
05/23 12:09

edit

添付ファイル

画像

phpで画像ファイルの拡張子を判別する

phpで画像の拡張子を判別するには

$i = getimagesize($move_filename);
print_r($i);

結果

Array
(
    [0] => 192
    [1] => 273
    [2] => 2
    [3] => width="192" height="273"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
)

と帰ってきますので、[mime]のところをみればいいでしょう。


No.751
10/19 09:31

edit

ファイル
画像

PHPで顔認識 openCV

画像ファイルに人物(顔が含まれるかどうか?)を判断するには openCV というのを使用します。

openCVのインストール

yum -y install opencv

re2cのインストール(インストールされている場合はスキップ)

tar zxvf re2c-0.12.2.tar.gz
cd re2c-0.12.2
./configure
make
su
make install

PHP拡張をインストール

http://hirokawa.netflowers.jp/entry/4874/

apacheを再起動

apachectl graceful


No.731
10/19 09:31

edit

画像

PHPのGD画像関数

GD関数で画像の幅、高さを取得

$filename = 'test.jpeg';
$info = getimagesize($filename);
print_r($info);
出力例
        (
            [0] => 160
            [1] => 144
            [2] => 2
            [3] => width="160" height="144"
            [bits] => 8
            [channels] => 3
            [mime] => image/jpeg
        )

test.jpeg を開いて 0,0 の位置のピクセルの色RGB情報を16進数の数値で取得する

$filename = 'test.jpeg';
$jpeg = imagecreatefromjpeg($filename);
$rgb = imagecolorat($jpeg,0,0);
$info = imagecolorsforindex($jpeg,$rgb);
$r = sprintf("%02x",$info['red']);
$g = sprintf("%02x",$info['green']);
$b = sprintf("%02x",$info['blue']);
print "r:{$r}  g:{$g}  b:{$b}  ";

GD および Image 関数

gd_info — 現在インストールされているGDライブラリに関する情報を取得する
getimagesize — 画像の大きさを取得する
image_type_to_extension — 画像形式からファイルの拡張子を取得する
image_type_to_mime_type — getimagesize, exif_read_data, exif_thumbnail, exif_imagetypeから返される 画像形式のMIMEタイプを取得する
image2wbmp — ブラウザまたはファイルにイメージを出力する
imagealphablending — イメージのブレンドモードを設定する
imageantialias — アンチエイリアス機能を使用すべきかどうかを判断する
imagearc — 部分楕円を描画する
imagechar — 水平に文字を描画する
imagecharup — 垂直に文字を描画する
imagecolorallocate — 画像で使用する色を作成する
imagecolorallocatealpha — 画像で使用する色を透過度を指定して作成する
imagecolorat — ピクセルの色のインデックスを取得する
imagecolorclosest — 指定した色に最も近い色のインデックスを取得する
imagecolorclosestalpha — 指定した色+アルファ値に最も近い色のインデックスを取得する
imagecolorclosesthwb — 色合い、白、黒を有する色のインデックスを得る
imagecolordeallocate — イメージの色リソースを開放する
imagecolorexact — 指定した色のインデックスを取得する
imagecolorexactalpha — 指定した色+アルファ値のインデックスを取得する
imagecolormatch — パレットイメージの色を True カラーイメージに近づける
imagecolorresolve — 指定した色または出来るだけ近い色のインデックスを得る
imagecolorresolvealpha — 指定した色+アルファ値または最も近い色のインデックスを取得する
imagecolorset — 指定したパレットインデックスの色を設定する
imagecolorsforindex — カラーインデックスからカラーを取得する
imagecolorstotal — 画像パレットの色数を検出する
imagecolortransparent — 透明色を定義する
imageconvolution — div および offset の係数を使用し、3x3 の畳み込み配列を適用する
imagecopy — 画像の一部をコピーする
imagecopymerge — イメージの一部をコピー、マージする
imagecopymergegray — グレースケールでイメージの一部をコピー、マージする
imagecopyresampled — 再サンプリングを行いイメージの一部をコピー、伸縮する
imagecopyresized — 画像の一部をコピーしサイズを変更する
imagecreate — パレットを使用する新規画像を作成する
imagecreatefromgd2 — GD2 ファイルまたは URL から新規イメージを生成する
imagecreatefromgd2part — GD2 ファイルまたは URL の指定した部分から新規イメージを生成する
imagecreatefromgd — GD ファイルまたは URL から新規イメージを生成する
imagecreatefromgif — ファイルまたは URL から新規画像を作成する
imagecreatefromjpeg — ファイル又は URL から新規 JPEG 画像を作成する
imagecreatefrompng — ファイルまたは URL から新規 PNG 画像を作成する
imagecreatefromstring — 文字列の中のイメージストリームから新規イメージを作成する
imagecreatefromwbmp — ファイルまたは URL から新規イメージを作成する
imagecreatefromxbm — ファイル又は URL から新規イメージを生成する
imagecreatefromxpm — ファイルまたは URL から新規イメージを生成する
imagecreatetruecolor — TrueColor イメージを新規に作成する
imagedashedline — 破線を描画する
imagedestroy — 画像を破棄する
imageellipse — 楕円を描画する
imagefill — 塗り潰す
imagefilledarc — 楕円弧を描画し、塗りつぶす
imagefilledellipse — 塗りつぶされた楕円を描画する
imagefilledpolygon — 塗りつぶした多角形を描画する
imagefilledrectangle — 塗りつぶした矩形を描画する
imagefilltoborder — 特定色で塗りつぶす
imagefilter — 画像にフィルタを適用する
imagefontheight — フォントの高さを取得する
imagefontwidth — フォントの幅を取得する
imageftbbox — freetype2 によるフォントを用いたテキストを囲む箱を取得する
imagefttext — FreeType 2 によるフォントを用いてイメージにテキストを描画する
imagegammacorrect — GD イメージにガンマ補正を適用する
imagegd2 — GD2 イメージをブラウザまたはファイルに出力する
imagegd — GD イメージをブラウザまたはファイルに出力する
imagegif — ブラウザまたはファイルへ画像を出力する
imagegrabscreen — 画面全体をキャプチャする
imagegrabwindow — ウィンドウをキャプチャする
imageinterlace — インターレースを有効もしくは無効にする
imageistruecolor — 画像が truecolor かどうか調べる
imagejpeg — 画像をブラウザまたはファイルに出力する
imagelayereffect — アルファブレンディングフラグを設定し、 libgd にバンドルされているレイヤ効果を使用する
imageline — 直線を描画する
imageloadfont — 新しいフォントを読み込む
imagepalettecopy — あるイメージから他のイメージにパレットをコピーする
imagepng — PNG イメージをブラウザまたはファイルに出力する
imagepolygon — 多角形を描画する
imagepsbbox — PostScript Type1 フォントを用いてテキスト矩形のバウンディングボックスを指定する
imagepsencodefont — フォントの文字エンコードベクトルを変更する
imagepsextendfont — フォントを展開または圧縮する
imagepsfreefont — PostScript Type 1 フォント用メモリを解放する
imagepsloadfont — ファイルから PostScript Type 1 フォントをロードする
imagepsslantfont — フォントを傾ける
imagepstext — PostScript Type1 フォントを用いて画像の上に文字列を描く
imagerectangle — 矩形を描画する
imagerotate — 指定された角度で画像を回転する
imagesavealpha — PNG 画像を保存する際に(単一色の透過設定ではない)完全な アルファチャネル情報を保存するフラグを設定する
imagesetbrush — 線の描画用にブラシイメージを設定する
imagesetpixel — 点を生成する
imagesetstyle — 線描画用のスタイルを設定する
imagesetthickness — 線描画用の線幅を設定する
imagesettile — 塗りつぶし用のイメージを設定する
imagestring — 文字列を水平に描画する
imagestringup — 文字列を垂直に描画する
imagesx — 画像の幅を取得する
imagesy — 画像の高さを取得する
imagetruecolortopalette — TrueColor イメージをパレットイメージに変換する
imagettfbbox — TypeType フォントを使用したテキストの bounding box を生成する
imagettftext — TrueType フォントを使用してテキストを画像に書き込む
imagetypes — この PHP がサポートしている画像形式を返す
imagewbmp — ブラウザまたはファイルにイメージを出力する
imagexbm — XBM 画像をブラウザあるいはファイルに出力する
iptcembed — バイナリ IPTC データを JPEG イメージに埋めこむ
iptcparse — バイナリの IPTC ブロックのタグをパースする
jpeg2wbmp — JPEG イメージファイルから WBMP イメージファイルに変換する
png2wbmp — PNG イメージファイルから WBMP イメージファイルに変換する
No.705
10/19 10:47

edit

画像