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

12
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#11

Код не покажу, но скажу лишь, что библиотека GD2 позволяет накладывать то, что Вы хотите на уже существующую картинку(использует ее как фон)

Линк на одну из функций.

Соль: GD не дружит с русскими буквами(во всяком случае, когда я ее юзал последний раз)

Подпись))
maldivec
На сайте с 04.11.2008
Offline
160
#12
modelist:
maldivec, несколько заготовок бэкграунда (экрана) в зависимости от количества сообщений и объема текста, несколько заготовок фонов сообщений (пузырьков) в зависимости от длины текста, а дальше все это слепить вместе - не сложнее наложения вотермарка, просто математически рассчитать местоположение и размеры. При фиксированном шрифте можно оперировать просто цифрами, а не функциями определения размеров занимаемой площади.

Именно так. Уже сделал, все оказалось проще чем я думал.

Только заготовка "пузырька" у меня одна, в зависимости от длинны текста от нее просто отрезаются нужные куски. Прямоугольник бьется на 4 части и в каждую часть вклеивается свой кусок нужного размера, соответственно слева-верх, справа-верх, слева-низ, справа-низ. :)

Милованов Ю.С:
Соль: GD не дружит с русскими буквами(во всяком случае, когда я ее юзал последний раз)

Все нормально с русским буквами.

Tenarius
На сайте с 09.02.2012
Offline
14
#13

maldivec, делать вам нужно следующее:

1. Делаете ваше окно переписки в формате html

2. Делаете чтобы поля сообщений, даты, времени, ников и прочие нужные вам данные передавались гетом или постом из формы, заполняемой пользователем.

3. Юзаете if-else/switch-case чтобы сформировать очередность сообщений и вообще чтобы получить нужный вид всего этого (исходя из вашего примера имеется ввиду готовый внешний вид экрана телефона) в формате html

4. При помощи функций работы с файловой системой создаете страницу с содержимым того, что получилось.

5. Используете шаблон из этой статьи http://habrahabr.ru/post/128292/ с той лишь разницей, что у вас УРЛ должен не вводиться пользователем а посылаться самим пхп.

6. Забираете получившийся скрин и отдаете его пользователю.

Мне нужны деньги...
IL
На сайте с 20.04.2007
Offline
435
#14
maldivec:
Идея в наложении готовых элементов будущего изображения друг на друга на нужных координатах. Хотя мне это видится ресурсозатратным...

Ресурсозатратным? В плане, писать много?

Если будет дизайн (от дизайнера) - нарезать его (почти вёрстка) и рассчитать.

- верхний отступ до первого пузырька

- пузырёк - верхняя часть (отступ до текста)

- пузырёк - нижняя часть (отступ после текста)

- средняя часть = количество строк * высоту текста..

Сами строки

http://www.php.net/manual/en/function.imagettfbbox.php + учитывать переносы.. по словам.. (пишем слово.. если не вышли за границу, пишем ещё одно.. Когда не влезет - перенос на следующую строку... и заново)

Когда посчитали - пишем текст http://www.php.net/manual/en/function.imagettftext.php

(фон-градиент, верхний и нижний края пузырька - уже должны быть на изображении)

- оступ от пузырька снизу (между пузырьками)

И так, пока есть сообщения.. :)

Да.. если будет градиент вертикальный.. в пузырьке (как на рисунке) с ним повнимательнее.. Если я правильно понял, просто "пополам" - не прокатит.

p.s. Возможно, проще это сверстать, отрендерить и сделать "скриншот" (всё на сервере)

---------- Post added 01-03-2013 at 13:14 ----------

maldivec:
Именно так. Уже сделал, все оказалось проще чем я думал.

Эх, долго писал. :) Глаза боятся..

---------- Post added 01-03-2013 at 13:15 ----------

Милованов Ю.С:
Соль: GD не дружит с русскими буквами(во всяком случае, когда я ее юзал последний раз)

GD дружит с файлом шрифта.

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
maldivec
На сайте с 04.11.2008
Offline
160
#15

:)

[ATTACH]120464[/ATTACH]

[ATTACH]120465[/ATTACH]

[ATTACH]120466[/ATTACH]

Всем спасибо.

png 1.png
png bg.png
png gBoxTall.png
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий