Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
У меня возникла проблемма при размещени текста на изображении.
Функцией imagestring() я пишу текст на изображении. Цвет текста указываю с помощью функции imagecolorallocate()
Проблемма заключается в том что на каждом изображении текст пишется различным цветом (не тем который указан в функции imagecolorallocate()) из-за чего такие проблемы могут быть?
grefon
Отправлено: 23 Марта, 2011 - 19:21:34
Частый посетитель
Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010
Помог: 32 раз(а)
А покажите весь код.
----- ____________________________________________________________________
Ну как то так, наверное. http://grefon[dot]com
ALEN
Отправлено: 23 Марта, 2011 - 19:23:59
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
$img->load("111.jpg");// загружаем исходное изображение
$img->text("CLASS CMS_IMG","action.ttf","#F5a50f",30,-30,20,20,100);// накладываем надпись "CLASS CMS_IMG" цветом "#F5a50f" - остальные параметры читай в инструкции к классу, если не нужно - удалить эту строку
$img->setlogo("logo.png",1);// накладываем логотип, если не нужно - удалить эту строку
$img->resize("ширина","высота");// изменяем размеры изображения в пикселях, если не нужно - удалить эту строку
$img->save("111.jpg");// сохранить изображение
$img->output();// эта строка используется, если код генерирует и отображает картинку, если не нужно - удалить эту строку
$img->destroy();// освобождаем память от картинки
Мой класс куда удобней использовать чем твоим методом, в инете можно найти еще похожие классы
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
ALEN, спасибо конечно, но я хочу разобраться со своей проблеммой не с помощью чужого кода. Понять из-за чего возникает она, чтобы не допускать таких ошибок в дальнейшем.
Так как с графикой большого опыта работы не имел раньше то и прошу помощи.
ALEN
Отправлено: 23 Марта, 2011 - 20:06:05
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Помог: 11 раз(а)
Okula
0) Нет смысла разбиратся, так как много готовых классов существует и так много действий нужно делать только в GD , остальные библиотеки решают этот вопрос несколькими строками.
1) Ты разрешение файла вычисляешь по его разрешению, а оно заведома может быть неверным, поэтому явная проблема.
2) (IMG_Y-17) - это для чего?
Okula
Отправлено: 23 Марта, 2011 - 20:22:53
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
ALEN, в константач IMG_X и IMG_Y находятся данные о размере нового изображения.
Это пользовательские константы.
(IMG_Y-17) этим я задаю значение текста по оси Y (его высоту по отношению к созданному изображению)
ALEN пишет:
0) Нет смысла разбиратся, так как много готовых классов существует и так много действий нужно делать только в GD , остальные библиотеки решают этот вопрос несколькими строками.
Пользоваться данными не представляя откуда они берутся вот в этом как раз и нет смысла.
ALEN
Отправлено: 23 Марта, 2011 - 20:27:33
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2011
Помог: 1 раз(а)
Возможно проблема связана с php5-gd.
Попробуйте пересобрать php с поддержкой родного функционала, а не внешнего (в обычной сборке php использует внешние модули - видимо у Вас ошибка идет оттуда - "из-за пределов" php)
Okula
Отправлено: 24 Марта, 2011 - 14:49:19
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
ALEN пишет:
И при наложении текста попробуй использовать imagettftext
Пробовал использовать эту функцию, результат тот же. Цвет на разных картинках разный. Я вот подумал может это зависит от того какое я изображение открываю.
Если я открываю изображение jpg и накладываю его на gif то палитра цветов меняется.
Может в этом проблема? (Добавление)
Решил проблему, нужно было создавать изображение функцией imagecreatetruecolor() а не imagecreate()
Вот теперь ещё один вопрос: можно ли задать стиль пользовательского шрифта. (как в ворде например: жирный, курсив, подчёркнутый)
Нужно сделать шрифт жирным. (Добавление)
И ещё, можно ли сделать текст полупрозрачным? Я нашёл такую функцию imagecolortransparent() но я понимаю что она делает цвет полность прозрачным, а этого делать ненужно. (Добавление)
С полупрозрачностью вопрос решён.
JustUserR
Отправлено: 24 Марта, 2011 - 17:03:05
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Okula Возможной причиной осуществления некорректного функционирования предполагаемого PHP-приложения, обеспечивающего добавление целевого текстового объекта на оригинальных графических объект, вследствие которого осущетвлялось провяление дифференциации используемого параметра цветовой составляющей характеристики для элемента текстового блока, является обеспечение применение ограниченной цветовой палитры, значащий ячейки которой производят хранение оригинальных параметров исходного изображения, в силу осуществляется операция подбора ближайшего цвета по хемминговскому расстоянию
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
ALEN
Отправлено: 24 Марта, 2011 - 19:31:31
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Помог: 11 раз(а)
1) Посмотри аргументы для imagegif()
2) У тебя создается прозрачное изображение + сам текст прозрачность изменена, вот и разница отображения
3) Вообще не пойму, почему бы не открыть мой же класс и не посмотреть как я выполнял ту или иную задачу, а то к примеру я вообще не представляю что выполняет imagecolorallocate($im, 255, 255, 255); в твоем коде.
Okula
Отправлено: 24 Марта, 2011 - 20:25:50
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
ALEN пишет:
а то к примеру я вообще не представляю что выполняет imagecolorallocate($im, 255, 255, 255); в твоем коде.
Первый вызов этой функции задаёт цвет фона изображения.
Я уже всё реализовал кроме как изменение толщины шрифта текста.
ALEN
Отправлено: 24 Марта, 2011 - 21:07:06
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Помог: 11 раз(а)
imagecolorallocate() возвращает идентификатор цвета
imagefilledrectangle() - рисует заполненный прямоугольник.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.