PHP Velho Oeste 2024

imagexbm

(PHP 5, PHP 7, PHP 8)

imagexbmXBM 画像をブラウザあるいはファイルに出力する

説明

imagexbm(GdImage $image, ?string $filename, ?int $foreground_color = null): bool

imagewbmp() は、指定した imageXBM にして出力あるいは保存します。

注意: imagexbm() はパディングを一切行わないので、 画像の幅は 8 の倍数でなければいけません。 PHP 7.0.9 以降では、この制約がなくなりました。

パラメータ

image

imagecreatetruecolor()のような画像作成関数が返す GdImage オブジェクト。

filename

画像の保存先のパスを文字列で指定します。null を設定した場合は、画像ストリームを直接出力します。

filename (拡張子 .xbm を除いた部分) は、XBM の C 識別子としても用いられます。 そのため、現在のロケールで扱える英数字以外の文字は、アンダースコアに置き換えられます。 filenamenull にすると、 image を使って C 識別子を作ります。

foreground_color

このパラメータで、 前景の色を指定できます。imagecolorallocate() で 取得した ID を使用してください。デフォルトの前景色は黒です。 その他の色はすべて、背景色として扱われます。

戻り値

成功した場合に true を、失敗した場合に false を返します。

警告

しかしながら、libgd がイメージの出力に失敗した場合、この関数は true を返します。

変更履歴

バージョン 説明
8.0.0 image は、 GdImage クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な gd resource が期待されていました。
8.0.0 foreground_color は、 nullable になりました。
8.0.0 使われていなかった第4引数は削除されました。

例1 XBM ファイルの保存

<?php
// 空の画像を作成してテキストを追加します
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// 画像を保存します
imagexbm($im, 'simpletext.xbm');

// メモリを開放します
imagedestroy($im);
?>

例2 別の前景色による XBM ファイルの保存

<?php
// 空の画像を作成してテキストを追加します
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// 別の前景色を設定します
$foreground_color = imagecolorallocate($im, 255, 0, 0);

// 画像を保存します
imagexbm($im, NULL, $foreground_color);

// メモリを開放します
imagedestroy($im);
?>

注意

add a note add a note

User Contributed Notes 1 note

up
0
Anonymous
12 years ago
FlagCreation with some random text inside.

<?php
class Logo{
    private
$colors;
        private
$imgWidth
    private
$imgHeight;  
    private
$img;
    private
$text;

    public function
__construct($width = 100, $height = 60){
       
$this->imgWidth = $width;
       
$this->imgHeight = $height;
       
$this->text = "RND TEXT";
       
$this->createImage();
    }
   
    public function
getText(){
        return
$this->text;
    }
   
    public function
createImage(){
       
$this->img = imagecreatetruecolor($this->imgWidth,$this->imgHeight);
           
$farbe = array(200,200,200);
           
$this->colors[0] = $this->makeColor($farbe);
           
$farbe = array(100,100,200);
           
$this->colors[1] = $this->makeColor($farbe);
       
       
imagefill($this->img,0,0,$this->colors[0]);
               
       
$streifenhoehe = intval($this->imgHeight / 6);       
       
$textgroesse = intval($streifenhoehe *2);
       
$y = 0;
       
$x = 0;
       
       
imagefilledrectangle($this->img,0,0,$this->imgWidth,$streifenhoehe,$this->colors[1]);
       
$y = $this->imgHeight - $streifenhoehe;
       
imagefilledrectangle($this->img,0,$y,$this->imgWidth,$this->imgHeight,$this->colors[1]);
       
       
       
$textma = imagettfbbox ( $textgroesse ,0 , "ARIAL.TTF", $this->text);
       
$textanfang = ($this->imgWidth - ($textma[2] - $textma[0]))/2;
       
$textanfang_hoehe = intval(($this->imgHeight-($textma[7]-$textma[1]))/2);
       
        
imagettftext($this->img, $textgroesse,0,$textanfang, $textanfang_hoehe, $this->colors[1],"ARIAL.TTF", $this->text);
       
       
    }
   
    public function
makeColor($color){
        if (
count($color)%3 != 0)
            return
false;
        else
            return
imagecolorallocate($this->img,$color[0],$color[1],$color[2]);
    }
   
    public function
getImage(){
        
header('Content-Type: image/gif', true);
       
imagejpeg($this->img);
    }   
}

$logo = new Logo(300,180);
$logo->getImage();
?>
To Top