PHP Velho Oeste 2024

imagexbm

(PHP 5, PHP 7, PHP 8)

imagexbm Вывод XBM изображения в браузер или файл

Описание

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

Вывод или сохранение в формате XBM изображения image.

Замечание: imagexbm() не использует дополнение, так что ширина изображения должна быть кратна 8. Это ограничение не накладывается с версий PHP 7.0.9.

Список параметров

image

Объект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().

filename

Путь, по которому сохранять файл, заданный как строка (string) Если не установлено, или равно null, будет произведён прямой вывод необработанного потока изображения.

filename (без расширения .xbm) также используется как идентификатор C XBM, при этом символы, не являющиеся в текущей локали цифрами или буквами, заменяются на подчёркивание. Если filename задан как null, image будет использован для создания идентификатора C.

foreground_color

Можно задать цвет верхнего слоя. Цвет задаётся идентификатором созданным функцией imagecolorallocate(). По умолчанию цвет чёрный. Все остальные цвета интерпретируются как цвета подложки (background).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия Описание
8.0.0 image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 foreground_color теперь допускает значение null.
8.0.0 Четвёртый параметр, который не использовался, был удалён.

Примеры

Пример #1 Сохранение XBM файла

<?php
// Создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Простая текстовая строка', $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, 'Простая текстовая строка', $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