Как вставить картинку в php
Перейти к содержимому

Как вставить картинку в php

  • автор:

imagegif

imagegif() создаёт GIF файл file из изображения image . Аргумент image возвращается функциями imagecreate() или imagecreatefrom* .

Файл будет иметь формат GIF87a , если изображение не было сделано прозрачным функцией imagecolortransparent() . В этом случае форматом файла будет GIF89a .

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

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

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

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

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

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

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

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

Версия Описание
8.0.0 Параметр image теперь ожидает экземпляр класса GdImage ; раньше параметр ждал корректный gd -ресурс ( resource ).

Примеры

Пример #1 Вывод изображения, используя imagegif()

// Создание изображения
$im = imagecreatetruecolor ( 100 , 100 );

// Создание белого фона
imagefilledrectangle ( $im , 0 , 0 , 99 , 99 , 0xFFFFFF );

// Рисование текста на изображении
imagestring ( $im , 3 , 40 , 20 , ‘GD библиотека’ , 0xFFBA00 );

// Вывод изображения в броузер
header ( ‘Content-Type: image/gif’ );

imagegif ( $im );
imagedestroy ( $im );
?>

Пример #2 Преобразование PNG в GIF, используя imagegif()

// Загрузка PNG
$png = imagecreatefrompng ( ‘./php.png’ );

// Сохранение как GIF
imagegif ( $png , ‘./php.gif’ );

// Освобождение памяти
imagedestroy ( $png );

// готово
echo ‘Преобразование PNG в GIF успешно завершено!’ ;
?>

Примечания

Замечание:

Следующий пример кода позволит вам писать PHP приложения, которые будут проще портироваться на разные системы. В нем используется автоопределение типа GD поддержки доступной в данный момент. Замените строки: header («Content-Type: image/gif»); imagegif ($im); на более переносимые:

// Создание нового изображения
$im = imagecreatetruecolor ( 100 , 100 );

// Какие-либо операции с изображением

// Обработка вывода
if( function_exists ( ‘imagegif’ ))
// для GIF
header ( ‘Content-Type: image/gif’ );

imagegif ( $im );
>
elseif( function_exists ( ‘imagejpeg’ ))
// для JPEG
header ( ‘Content-Type: image/jpeg’ );

imagejpeg ( $im , NULL , 100 );
>
elseif( function_exists ( ‘imagepng’ ))
// для PNG
header ( ‘Content-Type: image/png’ );

imagepng ( $im );
>
elseif( function_exists ( ‘imagewbmp’ ))
// для WBMP
header ( ‘Content-Type: image/vnd.wap.wbmp’ );

imagewbmp ( $im );
>
else
imagedestroy ( $im );

die( ‘В этом PHP сервере нет поддержки изображений’ );
>

// Если не поддерживается ни один из форматов
// освободим память
if( $im )
imagedestroy ( $im );
>
?>

Замечание:

Вы можете использовать функцию imagetypes() для проверки, какие форматы поддерживаются:

Смотрите также

  • imagepng() — Вывод PNG изображения в браузер или файл
  • imagewbmp() — Выводит изображение в браузер или пишет в файл
  • imagejpeg() — Выводит изображение в браузер или пишет в файл
  • imagetypes() — Возвращает список типов изображений, поддерживаемых PHP сборкой

Improve This Page

User Contributed Notes 12 notes

22 years ago

read also RFC2557: http://www.ietf.org/rfc/rfc2557.txt
For handling inline images in email.
—-

I’ve been playing around with the «data» URL scheme as proposed by RFC 2397 which states how to perform inline, bas64 encoded images. A number of browsers support this format from some of my tests and would be an interesting way of removing overhead from multiple HTTP connections. Basically, the IMG tag would be:

Something like that. Note also that I start the URI with «/-/» before the rest of the data scheme spec. If you don’t start it with this, it won’t work in a lot of the different browsers I tested (such as IE). Note this is useful for very small images only (as most browsers appear to have a limitation on the size of HTML element data of 1024). Browsers where this syntax worked that I tested are the following:

IE 6.x (windows)
Mozilla 0.97+ (linux)
Opera 5, 6 (windows)
Netscape 4.7+ (mac, windows)
IE 5 (macintosh)

This should work for other image types as well, such as PNG. JPEG files aren’t really suggested (usually, these files are too large). BTW — there is no advantage to this method if the image will appear more than ONCE in the page because you will be transmitting the same data multiple times as opposed to just once (most browsers realize that already downloaded data that has multiple references only requires one HTTP call).

Consider using this method if you want to make a single PHP program that outputs both text and an image AND you want to make only on HTTP call. Cheers.

12 years ago

apparently GD does not support animated GIFs.

instead, we’re stuck with the old fashioned way:
header ( ‘Content-Type: image/gif’ );
echo file_get_contents ( $destPathImage );
?>

Вставить изображение с стороннего сайта

Сама картинка сохраняется через file_put_contents().
Но когда я ее пытаюсь вставить в Excel не чего не вставляется. Файл создает вписываются все прочие данные, и не выдает не каких ошибок. Как можно загрузить картинку в Excel со стороннего сайта?

Отслеживать

задан 18 авг 2015 в 12:29

264 3 3 серебряных знака 16 16 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

$gdImage = imagecreatefromjpeg('images/officelogo.jpg'); // Add a drawing to the worksheetecho date('H:i:s') . " Add a drawing to the worksheet\n"; $objDrawing = new PHPExcel_Worksheet_MemoryDrawing(); $objDrawing->setName('Sample image');$objDrawing->setDescription('Sample image'); $objDrawing->setImageResource($gdImage); $objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG); $objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT); $objDrawing->setHeight(150); $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 

Тогда ваш код наверное (в правильности не уверен) будет выглядеть так:

$url_of_file = 'http://xxxxxx.ru/sgs/photo/199/999/199999_20150204085805.jpg'; $imag1=file_get_contents($url_of_file); $sheet->getColumnDimension('G')->setWidth(40); if ($imag1 !== false) < $logo = new PHPExcel_Worksheet_MemoryDrawing(); $logo->setImageResource($imag1); $logo->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG); $logo->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT); $logo->setCoordinates("G2"); $logo->setOffsetX(0); $logo->setOffsetY(0); $sheet->getRowDimension(2)->setRowHeight(190); $logo->setWorksheet($sheet); > 

Как вставить картинку в php

Пример #1 Создание PNG средствами PHP

header ( «Content-type: image/png» );
$string = $_GET [ ‘text’ ];
$im = imagecreatefrompng ( «images/button1.png» );
$orange = imagecolorallocate ( $im , 220 , 210 , 60 );
$px = ( imagesx ( $im ) — 7.5 * strlen ( $string )) / 2 ;
imagestring ( $im , 3 , $px , 9 , $string , $orange );
imagepng ( $im );
imagedestroy ( $im );

Этот пример можно было бы вызвать на странице с тегом: . Приведённый выше скрипт button.php возьмёт строку «text» и наложит её поверх базового изображения, которое является, в данном случае «images/button1.png» и выведет конечное изображение. Это очень удобный способ, чтобы избежать необходимости создания новой кнопки всякий раз, когда вы хотите изменить текст кнопки. С помощью этого метода она генерируются динамически.

Improve This Page

User Contributed Notes 1 note

7 years ago
Function to create random png images when requested for example.

here is create_image.php
$setting = isset( $_GET [ ‘s’ ]) ? $_GET [ ‘s’ ] : «FFF_111_100_100» ;
$setting = explode ( «_» , $setting );
$img = array();

switch ( $n = count ( $setting )) case $n > 4 :
case 3 :
$setting [ 3 ] = $setting [ 2 ];
case 4 :
$img [ ‘width’ ] = (int) $setting [ 2 ];
$img [ ‘height’ ] = (int) $setting [ 3 ];
case 2 :
$img [ ‘color’ ] = $setting [ 1 ];
$img [ ‘background’ ] = $setting [ 0 ];
break;
default:
list( $img [ ‘background’ ], $img [ ‘color’ ], $img [ ‘width’ ], $img [ ‘height’ ]) = array( ‘F’ , ‘0’ , 100 , 100 );
break;
>

$background = explode ( «,» , hex2rgb ( $img [ ‘background’ ]));
$color = explode ( «,» , hex2rgb ( $img [ ‘color’ ]));
$width = empty( $img [ ‘width’ ]) ? 100 : $img [ ‘width’ ];
$height = empty( $img [ ‘height’ ]) ? 100 : $img [ ‘height’ ];
$string = (string) isset( $_GET [ ‘t’ ]) ? $_GET [ ‘t’ ] : $width . «x» . $height ;

header ( «Content-Type: image/png» );
$image = @ imagecreate ( $width , $height )
or die( «Cannot Initialize new GD image stream» );

$background_color = imagecolorallocate ( $image , $background [ 0 ], $background [ 1 ], $background [ 2 ]);
$text_color = imagecolorallocate ( $image , $color [ 0 ], $color [ 1 ], $color [ 2 ]);

imagestring ( $image , 5 , 5 , 5 , $string , $text_color );
imagepng ( $image );
imagedestroy ( $image );

function hex2rgb ( $hex ) // Copied
$hex = str_replace ( «#» , «» , $hex );

switch ( strlen ( $hex )) case 1 :
$hex = $hex . $hex ;
case 2 :
$r = hexdec ( $hex );
$g = hexdec ( $hex );
$b = hexdec ( $hex );
break;

case 3 :
$r = hexdec ( substr ( $hex , 0 , 1 ). substr ( $hex , 0 , 1 ));
$g = hexdec ( substr ( $hex , 1 , 1 ). substr ( $hex , 1 , 1 ));
$b = hexdec ( substr ( $hex , 2 , 1 ). substr ( $hex , 2 , 1 ));
break;

default:
$r = hexdec ( substr ( $hex , 0 , 2 ));
$g = hexdec ( substr ( $hex , 2 , 2 ));
$b = hexdec ( substr ( $hex , 4 , 2 ));
break;
>

$rgb = array( $r , $g , $b );
return implode ( «,» , $rgb );
>

  • Примеры
    • Создание PNG средствами PHP
    • Добавление водяных знаков на изображения с помощью альфа-​каналов
    • Использование imagecopymerge создать полупрозрачный водяной знак
    • Copyright © 2001-2024 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    Добавляем изображения из базы данных

    Название товара мы берём из базы данных, сделаем то же и с изображением товара.

    Используем ещё одну команду из базы — get_img_url . Она поможет получить путь до картинки с товаром. Обратите внимание, эта команда также не является стандартной для языка PHP, а создана разработчиками студии Кекса.

    Создадим переменную в сценарии product.php , запишем в неё информацию из базы данных и выведем эту переменную в шаблоне в атрибуте src тега .

    Можно добавить переменную в шаблон знакомым способом, но такая запись слишком многословная:

     // Добавили переменную в атрибут картинки в шаблоне

    В PHP есть запись покороче:

    Работают эти две записи одинаково, разница только в количестве символов.

    Думпо уже сократил нашу запись в названии товара. Добавим изображение товара тоже c помощью сокращённого формата. А в атрибут alt элемента img добавим переменную $title . Так описание фотографии будет соответствовать названию товара.

    Перейти к заданию

    вашей квартире

    Разнообразные товары для дома с доставкой по всей планете

  • Мсеюлида

    лампа напольная

    Напольная лампа «Мсеюлида»

  • Рмаериби

    диван трёхместный

  • Блетуб

    люстра потолочная

  • выделяет нас среди конкурентов?

    Интернет-магазин товаров для дома

  • Каталог
  • Доставка
  • Контакты
  • Блог
  • Мсеюлида

    лампа напольная

    Напольная лампа «Мсеюлида»

  • Рмаериби

    диван трёхместный

  • Блетуб

    люстра потолочная

  • Ннулм

    рабочий стол

  • Асусмер

    подвесная кровать

    Подвесная кровать «Асусмер»

  • Тре

    набор мебели

  • Заготовка для фото товара

    [ ‘title’ => ‘Лампа Мсеюлида’, ‘url’ => ‘img/item-mseyulida.jpg’, ], ‘2’ => [ ‘title’ => ‘Диван Рмаериби’, ‘url’ => ‘img/item-rmaeribi.jpg’, ], ‘3’ => [ ‘title’ => ‘Люстра Блетуб’, ‘url’ => ‘img/item-bletub.jpg’, ], ‘4’ => [ ‘title’ => ‘Рабочий стол Ннулм’, ‘url’ => ‘img/item-nnulm.jpg’, ], ‘5’ => [ ‘title’ => ‘Подвесная кровать Асусмер’, ‘url’ => ‘img/item-asusmer.jpg’, ], ‘6’ => [ ‘title’ => ‘Набор мебели Тре’, ‘url’ => ‘img/item-tre.jpg’, ], ‘7’ => [ ‘title’ => ‘Люстра как у бабушки’, ‘url’ => ‘img/item-default-old-lamp.jpg’, ], ‘8’ => [ ‘title’ => ‘Лампа Дo’, ‘url’ => ‘img/item-do.jpg’, ], ‘9’ => [ ‘title’ => ‘Печатная машинка Епеус’, ‘url’ => ‘img/item-epeus.jpg’, ], ’10’ => [ ‘title’ => ‘Стикеры Блемпере’, ‘url’ => ‘img/item-blempere.jpg’, ], ’11’ => [ ‘title’ => ‘Панно Туета’, ‘url’ => ‘img/item-tueta.jpg’, ], ’12’ => [ ‘title’ => ‘Органайзер Бреирбери’, ‘url’ => ‘img/item-breirberi.jpg’, ], ’13’ => [ ‘title’ => ‘Подушка Нмяо’, ‘url’ => ‘img/item-nmyao.jpg’, ], ’14’ => [ ‘title’ => ‘Лампа Кел’, ‘url’ => ‘img/item-kel.jpg’, ], ’15’ => [ ‘title’ => ‘Подушка Омасе’, ‘url’ => ‘img/item-omase.jpg’, ], ’16’ => [ ‘title’ => ‘Корзина Орму’, ‘url’ => ‘img/item-ormu.jpg’, ], ’17’ => [ ‘title’ => ‘Скрепки Пинас’, ‘url’ => ‘img/item-pinas.jpg’, ], ’18’ => [ ‘title’ => ‘Компакт-кассета Преум’, ‘url’ => ‘img/item-preum.jpg’, ], ’19’ => [ ‘title’ => ‘Кресло Бадета’, ‘url’ => ‘img/item-badeta.jpg’, ], ’20’ => [ ‘title’ => ‘Сувенир Рмоб’, ‘url’ => ‘img/item-rmob.jpg’, ], ’21’ => [ ‘title’ => ‘Люстра Ткуоко’, ‘url’ => ‘img/item-tkuoko.jpg’, ], ’22’ => [ ‘title’ => ‘Кресла Бриатуо’, ‘url’ => ‘img/item-briatuo.jpg’, ] ]; > function get_product_attribute($id, $attr) < $products = get_products(); $result = $products[$id][$attr] ?? null; return $result; >function get_product_title($id) < return get_product_attribute($id, 'title'); >function get_img_url($id)

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *