画像処理 (GD)
- はじめに
- インストール/設定
- 定義済み定数
- 例
- GD および Image 関数
- gd_info — 現在インストールされているGDライブラリに関する情報を取得する
- getimagesize — 画像の大きさを取得する
- getimagesizefromstring — 画像の大きさを文字列から取得する
- image_type_to_extension — 画像形式からファイルの拡張子を取得する
- image_type_to_mime_type — getimagesize, exif_read_data, exif_thumbnail, exif_imagetypeから返される 画像形式のMIMEタイプを取得する
- image2wbmp — 画像をブラウザあるいはファイルに出力する
- imageaffine — 元の画像を、オプションのクリッピング領域を使ってアフィン変換した画像を返す
- imageaffinematrixconcat — 二つのアフィン変換行列を連結する
- imageaffinematrixget — アフィン変換行列を取得する
- imagealphablending — イメージのブレンドモードを設定する
- imageantialias — アンチエイリアス機能を使用すべきかどうかを判断する
- imagearc — 部分楕円を描画する
- imageavif — 画像をブラウザあるいはファイルに出力する
- imagebmp — ビットマップ画像をブラウザかファイルに出力する
- 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 — パレットを使用する新規画像を作成する
- imagecreatefromavif — 新しい画像をファイルあるいは URL から作成する
- imagecreatefrombmp — 新しい画像をファイルあるいは URL から作成する
- imagecreatefromgd — GD ファイルまたは URL から新規イメージを生成する
- imagecreatefromgd2 — GD2 ファイルまたは URL から新規イメージを生成する
- imagecreatefromgd2part — GD2 ファイルまたは URL の指定した部分から新規イメージを生成する
- imagecreatefromgif — 新しい画像をファイルあるいは URL から作成する
- imagecreatefromjpeg — 新しい画像をファイルあるいは URL から作成する
- imagecreatefrompng — 新しい画像をファイルあるいは URL から作成する
- imagecreatefromstring — 文字列の中のイメージストリームから新規イメージを作成する
- imagecreatefromtga — 新しい画像をファイルあるいは URL から作成する
- imagecreatefromwbmp — 新しい画像をファイルあるいは URL から作成する
- imagecreatefromwebp — 新しい画像をファイルあるいは URL から作成する
- imagecreatefromxbm — 新しい画像をファイルあるいは URL から作成する
- imagecreatefromxpm — 新しい画像をファイルあるいは URL から作成する
- imagecreatetruecolor — TrueColor イメージを新規に作成する
- imagecrop — 指定した矩形に画像をクロップする
- imagecropauto — 利用可能なモードを指定して、画像を自動的にクロップする
- imagedashedline — 破線を描画する
- imagedestroy — 画像を破棄する
- imageellipse — 楕円を描画する
- imagefill — 塗り潰す
- imagefilledarc — 楕円弧を描画し、塗りつぶす
- imagefilledellipse — 塗りつぶされた楕円を描画する
- imagefilledpolygon — 塗りつぶした多角形を描画する
- imagefilledrectangle — 塗りつぶした矩形を描画する
- imagefilltoborder — 特定色で塗りつぶす
- imagefilter — 画像にフィルタを適用する
- imageflip — 指定したモードで画像を反転させる
- imagefontheight — フォントの高さを取得する
- imagefontwidth — フォントの幅を取得する
- imageftbbox — freetype2 によるフォントを用いたテキストを囲む箱を取得する
- imagefttext — FreeType 2 によるフォントを用いてイメージにテキストを描画する
- imagegammacorrect — GD イメージにガンマ補正を適用する
- imagegd — GD イメージをブラウザまたはファイルに出力する
- imagegd2 — GD2 イメージをブラウザまたはファイルに出力する
- imagegetclip — 長方形を切り取り、画像として取得する
- imagegetinterpolation — 補間方法を取得する
- imagegif — 画像をブラウザあるいはファイルに出力する
- imagegrabscreen — 画面全体をキャプチャする
- imagegrabwindow — ウィンドウをキャプチャする
- imageinterlace — インターレースを有効もしくは無効にする
- imageistruecolor — 画像が truecolor かどうか調べる
- imagejpeg — 画像をブラウザあるいはファイルに出力する
- imagelayereffect — アルファブレンディングフラグを設定し、レイヤ効果を使用する
- imageline — 直線を描画する
- imageloadfont — 新しいフォントを読み込む
- imageopenpolygon — オープンポリゴンを描画する
- imagepalettecopy — あるイメージから他のイメージにパレットをコピーする
- imagepalettetotruecolor — パレット形式の画像を true color に変換する
- imagepng — PNG イメージをブラウザまたはファイルに出力する
- imagepolygon — 多角形を描画する
- imagerectangle — 矩形を描画する
- imageresolution — 画像の解像度を取得/設定する
- imagerotate — 指定された角度で画像を回転する
- imagesavealpha — 画像を保存する際に、完全なアルファチャネル情報を保存するかどうかを指定する
- imagescale — 幅と高さを指定して、画像の縮尺を変更する
- imagesetbrush — 線の描画用にブラシイメージを設定する
- imagesetclip — 切り取る長方形を設定する
- imagesetinterpolation — 補間方法を設定する
- imagesetpixel — 点を生成する
- imagesetstyle — 線描画用のスタイルを設定する
- imagesetthickness — 線描画用の線幅を設定する
- imagesettile — 塗りつぶし用のイメージを設定する
- imagestring — 文字列を水平に描画する
- imagestringup — 文字列を垂直に描画する
- imagesx — 画像の幅を取得する
- imagesy — 画像の高さを取得する
- imagetruecolortopalette — TrueColor イメージをパレットイメージに変換する
- imagettfbbox — TypeType フォントを使用したテキストの bounding box を生成する
- imagettftext — TrueType フォントを使用してテキストを画像に書き込む
- imagetypes — この PHP がサポートしている画像形式を返す
- imagewbmp — 画像をブラウザあるいはファイルに出力する
- imagewebp — WebP 画像をブラウザあるいはファイルに出力する
- imagexbm — XBM 画像をブラウザあるいはファイルに出力する
- iptcembed — バイナリ IPTC データを JPEG イメージに埋めこむ
- iptcparse — バイナリの IPTC ブロックのタグをパースする
- jpeg2wbmp — JPEG画像をWBMP画像に変換する
- png2wbmp — PNG画像をWBMP画像に変換する
- GdImage — GdImage クラス
- GdFont — GdFont クラス
+add a note
User Contributed Notes 5 notes
mail at ecross dot nl ¶
14 years ago
hello there,
i made a function to create a gradient image.
description:
gradient(int image_width, int image_height,
int start_red, int start_green, int start_blue,
int end_red, int end_green, int end_blue,
bool vertical)
function:
<?php
function gradient($image_width, $image_height,$c1_r, $c1_g, $c1_b, $c2_r, $c2_g, $c2_b, $vertical=false)
{
// first: lets type cast;
$image_width = (integer)$image_width;
$image_height = (integer)$image_height;
$c1_r = (integer)$c1_r;
$c1_g = (integer)$c1_g;
$c1_b = (integer)$c1_b;
$c2_r = (integer)$c2_r;
$c2_g = (integer)$c2_g;
$c2_b = (integer)$c2_b;
$vertical = (bool)$vertical;
// create a image
$image = imagecreatetruecolor($image_width, $image_height);
// make the gradient
for($i=0; $i<$image_height; $i++)
{
$color_r = floor($i * ($c2_r-$c1_r) / $image_height)+$c1_r;
$color_g = floor($i * ($c2_g-$c1_g) / $image_height)+$c1_g;
$color_b = floor($i * ($c2_b-$c1_b) / $image_height)+$c1_b;
$color = ImageColorAllocate($image, $color_r, $color_g, $color_b);
imageline($image, 0, $i, $image_width, $i, $color);
}
# Prints out all the figures and picture and frees memory
header('Content-type: image/png');
if($vertical){$image = imagerotate($image, 90, 0);}
ImagePNG($image);
imagedestroy($image);
}
?>
kurdtpage at gmail dot com ¶
13 years ago
When using GD, please make sure of the following things:
1. The file that is used to manipulate images is saved as ANSI format and not UTF-8
2. There is no space in front of the opening tag <?php
Thomas ¶
16 years ago
You know, maybe this goes without saying, but I thought I would drop a note in here. When developing code to resize images, it is best not to use GD. When using the current GD methodologies, you are reading content from an image and manipulating it. By then writing that content to a brand new file, you are losing the EXIF data.
For purposes when you want to retain EXIF data, it is recommended that you compile in and use the PECL Imagick extension. It has great resizing methods built right in and the EXIF data is retained.
herbert dot walde at googlemail dot com ¶
12 years ago
In case your script is using output-buffering-functions somewhere, then you have to clear the buffer first ( with ob_clear() ), before outputting an image with a function like imagepng().
And you should make sure that no buffer will get send after outputing an image by using the ob_end_flush()-function.
Furthermore you should check if a buffer has already been flushed somewhere before. This can be done using the headers_sent()-function.
Here is the full solution:
<?php
if(headers_sent()){
die('Headers have been send somewhere within my script');
}
ob_clean(); //Clears the buffer
header('Content-type: image/png');
imagepng($img, NULL, 0, NULL);
ob_end_flush(); //Now we send the header and image plus we make sure that nothing will get send from now on (including possible shutdown-functions and __destruct()-methods) till the end of page-execution
?>
code at ashleyhunt dot co dot uk ¶
16 years ago
I have been looking to send the output from GD to a text string without proxying via a file or to a browser.
I have come up with a solution.
This code buffers the output between the ob_start() and ob_end() functions into ob_get_contents()
See the example below
<?php
// Create a test source image for this example
$im = imagecreatetruecolor(300, 50);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
// start buffering
ob_start();
// output jpeg (or any other chosen) format & quality
imagejpeg($im, NULL, 85);
// capture output to string
$contents = ob_get_contents();
// end capture
ob_end_clean();
// be tidy; free up memory
imagedestroy($im);
// lastly (for the example) we are writing the string to a file
$fh = fopen("./temp/img.jpg", "a+" );
fwrite( $fh, $contents );
fclose( $fh );
?>
Enjoy!
Ashley
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google