Как php файл сделать картинкой

Обновлено: 05.07.2024

PHP позволяет динамически создавать изображения. Конечно, не имеет смысла рисовать на PHP какие-то сложные картинки. Для этого есть графические редакторы. Зато можно рисовать изображения, привязанные к контенту. Прежде всего, графики. Это основная задача, решаемая с помощью рисования. Хотя можно создавать и другие изображения.

Функции для создания изображения

Функция imageCreateTrueColor() создаёт новое изображение и возвращает дескриптор для дальнейшей работы с ним. На этом этапе картинка не отображается, она есть только в программе

ImageCreateTrueColor (ширина, высота)

При создании изображение представляет собой прямоугольник чёрного цвета.

В примере создано изображение размером 200 на 70 пикселей.

Напомню, что в PHP имена функций не чувствительны к регистру символов. И это можно использовать. В отличие от большинства функций PHP, в функциях рисования слова не разделены знаком нижнего подчёркивания. Чтобы визуально отделить слова друг от друга, можно начинать их с большой буквы. Так читать код программы будет гораздо проще.

Есть ещё функция imageCreate() . Она работает почти также, но создаёт не полноцветное, а палитровое изображение. В нём используются не все цвета, а только набор доступных цветов. Работать с ним неудобно.

Вывод картинки

Чтобы сервер правильно отправлял картинку, в скрипте должен быть заголовок ContentType с указанием MIME-типа контента. Напомню, что во всех примерах этого учебника во 2 строке предполагается установка типа text/html. Но для изображений он другой. В примерах этой главы ContentType будет указан.

Для вывода картинки в браузер или в файл используется несколько функций, каждая из которых создаёт изображение своего формата. Например imageJpeg() выводит картинку в формате jpeg.

imageJpeg (изображение, файл, качество)

изображение - дескриптор изображения

файл - путь к файлу. Если NULL или не указан, то изображение выводится в поток.

качество - от 0 до 100. Влияет на размер файла. По умолчанию 75

Вот пример скрипта, который создаёт картинку и выводит на экран:

2 - Устанавливаем MIME-тип контента: изображение в формате jpeg

3 - Создаём изображение

4, 5 - Рисуем синий прямоугольник. Изучим это позже

6 - Выводим на экран

Функция imagepng() выводит картинку в формате PNG.

imagepng (изображение, файл, сжатие, фильтры)

изображение - дескриптор изображения

файл - путь к файлу

сжатие - от 0 до 9. По умолчанию установлено 0

фильтры - указываются с помощью констант, в том числе PNG_NO_FILTER и PNG_ALL_FILTERS

Если картинка выводится в поток, то сжатие и фильтры указываются обязательно.

Функция imagegif() выводит в формате GIF.

imagegif (изображение, файл)

Функция imagewbmp() выводит в формате WBMP.

imagewbmp (изображение, файл, верхний слой)

изображение - дескриптор изображения

файл - путь к файлу

верхний слой - позволяет указать цвет верхнего слоя. О создании цвета рассказывается в следующей теме

Все функции работают по одному принципу: если путь к файлу указан, то картинка сохраняется в файл. А если установлен NULL или не указан, то рисунок выводится в поток.


Хорошо, это все понятно, а как будет выглядеть если картинка большая, мы вставляем переменную и картинка раздвигает рамки таблицы, как сделать что бы картинка вписывалась в таблицу, если есть ответ выслите на аську 400008703 или ответьте. Заранее благодарен, сам парюсь не знаю как.

У большинства тегов в HTML, есть свойство width, т.е. ширина. Из этого следует, что прежде чем вставлять картинку в таблицу можно просчитать и выставить ширину картинки и она уменьшится. Есть так же свойство height - это высота. Для того чтоб сохранялись пропорции картинки изменяйте только одну величину, ширину или высоту. Примерно так: < img src="картинка.jpg" width ="250" > или < img src="картинка.jpg" height ="350" > Хотя конечно можно и так: < img src="картинка.jpg" width="250" height="350" >

Вот пример я вытаскиваю картинку из БД, то есть у меня там лежит , то есть я указываю переменную %s, а картинки естественно разного размера мне нужно что бы эти картинки вставали в рамку таблицы все перепробовал ну ни как. максимум что сделал я ее вписал в таблицу через overflow-hidden и display-block, она встала в таблицу но картинки видно только начало края картинки, вот как сделать что бы они вставали под размер таблицы. (Картинки все разного размера). Помогите. Лучше на примере маленьком. Заранее благодарен.

Да я с вами согласен если из базы данных брать только путь /images/ip.jpg то естественно можно подставить и ширину и высоту, но у меня из базы тянет сразу (img src='путь') естественно в переменную которую я вытаскиваю я не могу подставить размеры как вы выше описали, вот и спрашивается есть еще какие варианты. Заранее благодарен!

Спасибо огромнейшее. Сайт супер отвечают, на все вопросы. Советую всем кто в чем то затрудняется. Спасибо еще раз.

а вы не могли бы подсказать, не по этой теме? ели откажитесь я пойму?

На форуме есть раздел "Заказ уроков", это бесплатно. Пишите там, что вас интересует и попробуем разобраться. Предварительно прочитайте правила форума.

А подскажите как выводить картинки и контент вместе на одной странице.

SETTER Спасибо за ответ. Дело в том что к примеру смайлы можно ставить Пример: // заменяем текстовые смайлики на графические $dt[0]=str_replace(":-))",$s1,$dt[0]); $dt[0]=str_replace(":-)",$s2,$dt[0]); А вот как описать что бы скрипт преобразовывал и отображал картинки не понятно :/ Если сможете подскажите как сделать :)

SETTER Спасибо за попытку помочь! :) но я нашел в сети другую гостевую с возможностью вставки изображений : )

Это все очень интересно и понятно, но а если у тебя допустим без базы данных Mysql. А вся информация хранится в формате редактора прямо у тебя на сервере.

У меня не открывает картинку. Пишет просто изображение, что делать?(

а как например напротив картинки ровно напротив (цент) поставить код php ?

Здравствуйте. у меня такой вопрос..подскажите как на самой картинке,сделать ссылки куда либо (пример: картинка,а на ней написано кабинет,нажимаешь и уходит в форму кабинет)

Вариант зайти на letpix ru - загрузить картинку или картинки и вставить уже готовый, появившийся HTML код на свою страницу. Всё генерируется автоматически.

а где варианты что картинка в самом коде) в base64 или в базе аналогично

У меня не отображаются картинки ни на моем сайте через все браузеры, ни в вашей статье. В этой статье ваши картинки у меня тоже не отображаются. Проблема очевидно не в коде. Но тогда в чем? Кто знает, подскажите.

Вот мне бы полностью html и php код вот у меня есть форма загрузки картинок на сервер там они загружаются в отдельную папку как бы извлечь из этой папки что бы картинка была на страничке моего сайта

Суть заключается в том, чтоб иметь линк (ссылку) на эту картинку. Ну например в таблице базы данных у вас сохраняется, при загрузки, путь до картинки. Которая находится теперь на сервере, в определённой директории. Тогда выбрав из базы эту строку (путь до картинки), вы в вёрстку вашей страницы, вставляете такой тег . Вот и весь принцип вставки.

Спасибо огромное , очень помогли ! Все понятно и примерами .

Доброго времени суток! Большая просьба подсказать способ вывода картинки по меткам WP. Например, в посте выводится метка в виде текста: трам-пампам, а нужно, чтобы в придачу к этому тексту выводилась и её фото. Благодарю заранее.

Обновит картинку img src="image.php"
Может и не тот раздел, но все таки пхп присутствует ) допустим есть сгенерированая картинка php. В.


Как сохранить изображение gd php в указанную директорию?
Как сохранить изображение gd php в указанную директорию? Собственно это и есть вопрос, подскажите.

Привязать к кнопке "Сохранить как"
Здравствуйте, люди добрые ну подскажите плиз. PHP только начинаю осваивать и делаю все по.

спасибо!
а это не будет плохо для сервера, если на нем будут так генерироваться и удаляться по сотни, а то и тысячи картинок в день?

и еще возник другой вопрос.. после того, что сделал как выше стал создаваться файл image.jpg и он скачивается.
однако изображение перестало выводиться.. т.е. получается теперь, нужно вызывать функцию создания изображения, затем вывести созданный файл через <img, а потом его удалить через какое-то время переодически чистить папку с изображениями?

о, а может сделать 2 скрипта и оба запускать.. этот оставить и создать еще один для сохранения

Можно одним сохранять, другим выводить, 3 отдавать. Можно всё в одном. Нужно удалить картинку после выдаче на сохранение.
чтобы не было путанице имя файла лучше сделать уникальным

Если вам помогли жмите спасибо.

возникла проблемка..
rак эту функцию встроить на страницу?
там пишут
"Cannot modify header information - headers already sent by"

Кнопка "сохранить как"
Уже голову сломал. Необходимо получить результат действия и его записать файл. При сохранение.


Тысячные числа исправлять к примеру с "1200" на "1 200", "12000" на "12 000" и т.д
Собственно числа исправлять к примеру с &quot;1200&quot; на &quot;1 200&quot;, &quot;12000&quot; на &quot;12 000&quot;, &quot;120000&quot; на.

Как на php создать кнопку "Мне нравится" как Вконтакте?
Как на php создать кнопку &quot;Мне нравится&quot; как Вконтакте? чтобы каждый пользователь смог нажать на.

Создание изображений в PHP

Когда я начинаю рассказывать о создании изображений в PHP, многие спрашивают: "А причём здесь PHP, ведь это работа скорее дизайнеров, нежели программистов?". И всега приходится объяснять, что PHP позволяет генерировать изображения. Ключевое слово - "генерировать". Какие могут быть примеры генерации изображений в PHP? Например, генерация графиков по заданным пользователям функциям, графики зависимости посещаемости сайта от времени, различные сервисы для рисования изображений прямо в браузере (разумеется, с последующим сохранением и загрузкой на сервере) и другие различные примеры. И в этой статье мы разберём основные принципы создания изображений в PHP.

Данная статья будет вводная, поэтому разберём с Вами определённый HelloWorld при работе с изображениями:

<?php
$i = imageCreate(200, 300);
$color = imageColorAllocate($i, 255, 255, 0);
imageFilledRectangle($i, 0, 0, imageSX($i), imageSY($i), $color);
Header("Content-type: image/jpeg");
imageJpeg($i);
imageDestroy($i);
?>

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

  • imageCreate(int $width, int $height) - эта функция возвращает идентификатор изображения шириной width и высотой height. Если объяснить более понятным языков, то Вы этим действием создаёте "чистый холст для рисования".
  • imageColorAllocate(resource $image, int $red, int $green, int $blue) - функция возвращает идентификатор цвета со следующими составляющими: красной (red), зелёной (green), синей (blue). В нашем случае мы взяли красную и зелёную составляющую по максимуму (255). В результате, был получен жёлтый цвет.
  • imageFilledRectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color) - эта функция рисует закрашенный прямоугольник на холсте image с координатами левого верхнего угла - x1 и y1, и координатами правого нижнего угла - x2 и y2, и цветом color.
  • imageSX(resource $image) - возвращает ширину изображения image.
  • imageSY(resource $image) - возвращает высоту изображения image.
  • header($string) - функция, которая посылает заголовок серверу. В данном случае мы сообщили, что наш контент имеет тип "image/jpeg". Это очень важная строка, и из-за её отсутствия очень часто возникают ошибки.
  • imageJpeg(resource $image) - эта функция "выбрасывает" изображение image на экран. То есть в предыдущей строке мы сообщили серверу, что сейчас будет отправлено изображение, а уже этой строкой отправили само изображение.
  • imageDestroy(resource $image) - уничтожение изображения image. Всегда надо использовать эту функцию, чтобы освободить память на сервере.

Фактически, пример выше - это HelloWorld при работе с изображениями. Здесь каждая строчка очень важна и при удалении любой строки - работа, как минимум, станет непредсказуемой, а, скорее всего, скрипт перестанет работать. В следующей статье мы продолжим заниматься созданием изображением в PHP, поэтому советую подписаться на обновления, чтобы не пропустить её.


Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 6 ):

Михаил, подскажите пожалуйста: стоит задача сделать красивые шрифты для кнопок на сайте, естественно они не стандартны; при этом при наведении курсора цвет их должен изменяться. Я нарисовал в CorelDraw нужные кнопки с прозрачным фоном, можно сохранить в любом векторном/растровом формате. Я так понимаю, что самый простой способ - это проеобразовать изображение в html или php код. Есть ли программы или сайты, где это можно сделать? Или, может быть, подскажете, как эту задачу реализовать, вся сложность в том, чтобы менять цвет при наведении курсора.

Ничего преобразовывать не нужно, достаточно вставить через img, либо через свойство background в CSS.

Здравствуйте, Михаил. 2 вопроса: 1. Как при рисовании таких изображений использовать данные из Mysql (т.е. например, использовать SELECT и подставлять необходимые данные). 2.Как сохранять такие изображения в MySQL (какого типа поля использовать, как сохранять, как вытаскивать, как пути указать). Спасибо

Именно так и делается. Сначала селектом выводится то, что нужно, затем на основе этих данные рисуется картинка. А чтобы сохранять картинки в базу, нужно создать в таблице отдельно поле типа BLOB. Только в базе картинки обычно не хранят, кроме того в настройках сервера может быть запрещена работа с такими объемными файлами.

как добавить иконку в оглавие страницы как у вас земной шар в оглавлении и "Создание изображений в php" заранее спасибо

Читайте также: