Pull to refresh
  • by relevance
  • by date
  • by rating

А где вы делаете «ногти»?

Website development *
Когда идет речь о веб-разработках рано или поздно встаёт вопрос о том как и в чем подготавливать превью-картинки (thumbnail) на стороне веб-сервера. Вопрос о ручной подготовке отпадает автоматически, куда более приятно загрузить картинку и ни о чем больше не думать. Вот о том как не думать и пойдёт речь.
Читать дальше →
Total votes 26: ↑21 and ↓5 +16
Views 2.5K
Comments 70

Фотошопим на PHP

PHP *
Уменьшаем изображение разными библиотеками и сравниваем результат Для многих задач автоматической обработки фотографий не подходит качество и функционал библиотеки GD. Поскольку возможности обратиться к Photoshop из PHP или Perl пока не существует, решаем проблему с помощью ImageMagick.

Речь пойдет о PHP инрефейсе к ImageMagick MagickWand, который в репозитарии Fedora называется php-magickwand. Хочу обратить Ваше внимание, что MagickWand API отличается от классического ImageMagick тем что позволяет работать как с элементами растровой графики, так и с элементами векторной графики.

Для php есть еще одна реализация интерфейса к ImageMagick, которая называется IMagick, но функционал этой библиотеки, на мой взгляд, уступет MagickWand.


В первой статье рассмотрим на примерах несколько типичных задач по обработке изображений и сравним результаты с php-gd.



Читать дальше →
Total votes 66: ↑64 and ↓2 +62
Views 1.9K
Comments 31

Осторожно, скользко! Играемся с изображением в ПХП. Эффект мокрого пола.

Lumber room
Как реализовать эффект мокрого пола?

А все очень просто!

Надо всего лишь зайти под “cut” и посмотреть… =)

Задача: реализовать эффект мокрого пола

Решение: PHP + GD
Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Views 304
Comments 27

Пишем на картинках

PHP *
В течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было.

А вот надписей вроде еще не было. Значит будут. :-)

Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
Код и пример под катом
Total votes 104: ↑88 and ↓16 +72
Views 14K
Comments 36

Графические фильтры на основе матрицы скручивания

Website development *
UPD: Заголовок изменен, что бы более соответствовать теме статьи

В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.

Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).

Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)

под катом
Total votes 100: ↑98 and ↓2 +96
Views 38K
Comments 37

Рисуем анимированные gif-ки с помощью libgd.

C++ *
Смысл данной статьи — дать представление о использовании библиотеки GD в связке с С.

Скачать libgd или почитать более подробно о ее использовании можно здесь: http://www.libgd.org/(eng.)

После установки GD cписок функций и типы принимаемых/возвращаемых данных можно посмотреть в файлике /usr/local/include/gd.h (в моем случае, иначе sudo updatedb && locate gd.h) понять назначение функций довольно просто по их названию.

Код небольшой программки с моим описанием, которая рисует вотэто:

Image and video hosting by TinyPic

Смотрим под катом
Total votes 43: ↑34 and ↓9 +25
Views 17K
Comments 42

Простое сравнение изображений с помощью php

PHP *
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →
Total votes 161: ↑153 and ↓8 +145
Views 25K
Comments 64

Прописываем dpi в PNG с помощью PHP

PHP *
Понадобилось мне тут вдруг для одной прикладной задачи генерировать PNG-шки на PHP, чтобы затем их можно было вставлять в документы и распечатывать. Но вот проблема, никак с помощью GD в PHP при сохранении нельзя задать разрешение в dpi, а ведь это очень важно при печати. С ImageMagick мне связываться не хотелось, поэтому я быстренько нагуглил PNG (Portable Network Graphics) Specification и написал вот такой код:
Читать дальше →
Total votes 59: ↑54 and ↓5 +49
Views 4.4K
Comments 121

Изменяем размер изображений правильно

Lumber room
Долгое время меня терзали сомнения, почему же в моем блоге фотографии смотрятся тускло и кажутся размытыми. Выставление качества 100% не спасало, а лишь увеличивало размер файлов.

Наконец то сегодня нашел время установить ImageMagick. Пришлось исправить пару багов в Drupal, который вместо того, что бы запустить бинарник, требовал к нему доступ на чтение, которое хостер не дает.

Разница на лицо.
Фото до и после
Total votes 18: ↑8 and ↓10 -2
Views 409
Comments 32

Особенности использования GD-lib на хостинге PHP c ограничеными ресурсами

Lumber room
Данной проблемой пришлось занятся после случая на хостинге «Х», на котором достаточно небольшие изобржаения невозможно было преобразовать, используя эту библиотеку. Но самое противное заключалось в том что скрипт просто умирал, оставляя информацию только в логах. Поэтому пришлось выяснить
чтобы такого сделать чтоб не умирал
Total votes 10: ↑8 and ↓2 +6
Views 212
Comments 3

Матановая капча на PHP — это просто!

PHP *

В этом топике я хочу вам рассказать о создании т.н. "матан-капчи" с использованием только PHP и GD. Для отрисовки формул будем использовать PhpMathPublisher — свободно распространяемую библиотеку, использующую только расширение GD.
Читать дальше →
Total votes 112: ↑95 and ↓17 +78
Views 24K
Comments 127

Генерация приглашений, похожих на инвайты сайта habrahabr

PHP *
Скрипт генерирует приглашения для регистрации на сайте в виде картинки 51x51 пикселей формата PNG, написан на PHP, в качестве базы данных использует MySQL. Сделан ради интереса, будет интересен только новичкам.
подробнее
Total votes 92: ↑63 and ↓29 +34
Views 10K
Comments 66

Интерполяция: рисуем гладкие графики средствами PHP и GD

PHP *
Распространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.



Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.

В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).

Кратко рассмотрим методы интерполяция и аппроксимации.
Читать дальше →
Total votes 80: ↑77 and ↓3 +74
Views 53K
Comments 23

Успокаиваем нервы при помощи Perl и GD

Perl *
Sandbox

Предисловие


Я один из тех людей, которые часто подвержены стрессовым ситуациям. Избавиться от стресса можно разными способами. В данном топике я покажу вам, как это делаю я.
Читать дальше →
Total votes 39: ↑33 and ↓6 +27
Views 2.7K
Comments 30

Всесторонняя оптимизация сайта на WordPress

Server optimization *
Уважаемые жители Хабра!

Вашему вниманию представляется история о том, как мы оптимизировали свой сайт. Сайт работает на движке Wordpress (на этой фразе большинство читателей должны поморщиться, зная, как обстоят дела у WordPress со скоростью). Однако все-таки у нас получилось, и сайт стал летать. Сразу скажу, что меня вряд ли можно считать профессионалом по серверной оптимизации, однако то, чего удалось достичь, меня сильно радует. Также, был получен бесценный опыт, которым я хочу поделиться с читателями Хабра.
Читать дальше →
Total votes 96: ↑90 and ↓6 +84
Views 56K
Comments 31

Рисуем код из «Матрицы» на PHP

PHP *
Sandbox
Однажды мне пришла в голову идея сделать динамически создаваемый фон для блога в виде пресловутого кода из фильма «Матрица». После убийства вечера и половины ночи я-таки достиг желаемого результата, и решил поделиться им с народом. К сожалению, я не нашёл подобной реализации, а иметь динамически создаваемую «матрицу» как фон бложика таки хочется.
Итак, пишем генератор кода «Матрицы» на PHP с использованием библиотеки gd.
Читать дальше →
Total votes 71: ↑45 and ↓26 +19
Views 14K
Comments 59

Рисуем тайлы с данными для GoogleMap на PHP

PHP *
Преамбула

В настоящее время очень популярно заниматься визуализацией каких-либо данных на картах. Да прочем и не только визуализацией, применений множество: игры, гео-сервисы, визуализация, статистика и многое-многое другое. С одной стороны, применение canvas это хорошо и современно, с другой же — количество объектов может превышать все мыслимые и немыслимые пределы, что ведет к уменьшению скорости работы пользователя с такими сервисами, тысячи полигонов на canvas «тормозят клиента», браузеры «жрут» память в огромных количествах и т.п. Это не говоря уже о том, что хоть и редко, но необходима поддержка «старых» браузеров, не поддерживающих canvas/html5.

Простой пример


Представьте что-то подобное этой картинке, уменьшите масштаб и увеличьте тем самым количество полигонов в «кадре» до 5 000. Офисный компьютер двух- или трех-летней давности может и умереть на отрисовке такой карты. Бороться с этим можно просто добавив оверлей слой на карту со своими тайлами.

Подробности и готовый код
Total votes 11: ↑8 and ↓3 +5
Views 3.7K
Comments 6

Наложение текста и картинок на изображение с помощью библиотек MagickWand и GD

PHP *Image processing *
Sandbox
MagickWand — одна из библиотек, осуществляющих доступ к пакету программ ImageMagic, для работы с изображениями в PHP. Рассмотрим особенности наложения текста и графики в ней. Говорят, что ImageMagic очень быстрый и дает результат лучшего качества (но не так распространен как GD). За одно проверим это.
Читать дальше →
Total votes 11: ↑5 and ↓6 -1
Views 19K
Comments 16

Ресайз анимированных GIF картинок с помощью PHP + GD

Website development *PHP *Programming *
Sandbox
Доброго времени суток.

Сперва небольшое вступление.
Во время разработки своего собственного проекта я столкнулся с задачей ресайза GIF файлов исключительно средствами PHP без использования программного пакета ImageMagick (думаю сами догадались почему). Если есть задача значить ее надо решить, не придав ей большого внимания и сложности я пошел на просторы Интернета искать реализованный скрипт в виде функции или класса. И к своему удивлению и огорчению (так как ресайз должен быть однозначно) я нашел всего два скрипта на PHP, авторы которых сделали попытку реализовать эту нетривиальную задачу (о других языках я вообще молчу там только безальтернативный ImageMagick), хоть перерыл Интернет вдоль и поперек.
Читать дальше →
Total votes 18: ↑9 and ↓9 0
Views 8.4K
Comments 42
1