[PHP] Почему ImageTTFText игнорирует хинтинг?

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

[PHP] Почему ImageTTFText игнорирует хинтинг?

Сообщение tyomitch » 04.07.2005 (Пн) 23:29

Вот, решил автоматизировать смену цитат в подписи. Но сгенерированная имага отвратительно плохо вписывается в тексты постов из-за принудительного антиалиасинга выводимого через ImageTTFText текста. Винда, для сравнения, использует антиалиасинг только для больших шрифтов - начиная с около 16пт - а для меньших использует хинтинг. Можно ли как-то добиться похожего поведения в PHP?
Изображение

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 05.07.2005 (Вт) 17:55

Врятли, эта функция находится в библе FreeType, так что скорее всего скриптом ничего не сделаешь
Каждый warning мечтает стать error'om

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.07.2005 (Вт) 19:54

Не понял импликации.
Почему если FreeType, то ничего не сделаешь?
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.07.2005 (Ср) 8:22

Вообще-то, Windows XP с включенными ClearType всегда использует антиальясинг, я уже как-то привык.
Lasciate ogni speranza, voi ch'entrate.

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 06.07.2005 (Ср) 12:09

tyomitch писал(а):Не понял импликации.
Почему если FreeType, то ничего не сделаешь?

Потому что PHP компилится вместе с этой библой, а функция ImageTTFText находится в этой библе (вообще в ней находятся все функции для работы с шрифтами TrueType), вот почему скриптом ты нничего не сделаешь
Каждый warning мечтает стать error'om

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.07.2005 (Ср) 21:02

alibek писал(а):Вообще-то, Windows XP с включенными ClearType всегда использует антиальясинг, я уже как-то привык.

Т.е. ты хочешь сказать, что у тебя шрифт в моей подписи выглядит так же, как текст постов? :-?

ZeroX писал(а):
tyomitch писал(а):Не понял импликации.
Почему если FreeType, то ничего не сделаешь?

Потому что PHP компилится вместе с этой библой, а функция ImageTTFText находится в этой библе (вообще в ней находятся все функции для работы с шрифтами TrueType), вот почему скриптом ты нничего не сделаешь

Ээ... Я конечно ламер в PHP, но какая связь между FreeType и TrueType?
И нет ли каких-нибудь "обходных путей" вокруг странностей этой библиотеки?
Мне пока приходит в голову только нагенерировать картинки со всеми буквами на своей машине, а в скрипте собирать подпись из готовых букв :-|
Изображение

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 06.07.2005 (Ср) 21:56

Библиотека GD поддерживает также работу со шрифтами PostScript и TrueType. Для того чтобы заработали приведенные ниже функции, PHP должен быть откомпилирован и установлен вместе с библиотекой FreeType, доступной по адресу http://www.freetype.org. В Windows-версии PHP она установлена по умолчанию.

Теперь понимаешь причем здесь FreeType
Мне пока приходит в голову только нагенерировать картинки со всеми буквами на своей машине, а в скрипте собирать подпись из готовых букв

Код: Выделить всё
<?php
$imgname=rand(10,0);
$img=imagecreatefromgif("$imgname.gif");
imagegif($im);
imagedestroy($im);
?>

Короче этот скрипт будет выводить случайную картинку с подписью.
Думаю что так будет наиболее безгеморойно, да и для полета фантазии при рисовании картинок пределов нет :wink:
Скрипт не проверял - писал по памяти
Каждый warning мечтает стать error'om

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.07.2005 (Ср) 22:43

ZeroX писал(а):
Библиотека GD поддерживает также работу со шрифтами PostScript и TrueType. Для того чтобы заработали приведенные ниже функции, PHP должен быть откомпилирован и установлен вместе с библиотекой FreeType, доступной по адресу http://www.freetype.org. В Windows-версии PHP она установлена по умолчанию.

Теперь понимаешь причем здесь FreeType

Нет :-D Почему для работы одной вещи должна быть подключена совсем другая вещь? :roll:
Как-то всё сильно криво в этом PHP... Сколько времени на нём надо писать, чтобы эта кривизна начала казаться естественной? ;-)
Ну да ладно, это всё лирика.

ZeroX писал(а):
Мне пока приходит в голову только нагенерировать картинки со всеми буквами на своей машине, а в скрипте собирать подпись из готовых букв

Код: Выделить всё
<?php
$imgname=rand(10,0);
$img=imagecreatefromgif("$imgname.gif");
imagegif($im);
imagedestroy($im);
?>

Короче этот скрипт будет выводить случайную картинку с подписью.
Думаю что так будет наиболее безгеморойно, да и для полета фантазии при рисовании картинок пределов нет :wink:

Нет уж, тогда проще каждый день просто новую картинку выкладывать... Чего-нибудь интереснее надо придумать :-(
Последний раз редактировалось tyomitch 06.07.2005 (Ср) 22:48, всего редактировалось 1 раз.
Изображение

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 06.07.2005 (Ср) 22:48

tyomitch писал(а):Нет уж, тогда проще каждый день просто новую картинку выкладывать... Чего-нибудь интереснее надо придумать :-(

А я думаю что проще выложить несколько картинок на сервер и юзать скрипт. Если не в курсе: <img src="http://yoursite.com/yourscript.php"> будет выводится картинка
А вообще будут вопросы по PHP заходи на форум kolaar.net
Каждый warning мечтает стать error'om

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.07.2005 (Ср) 22:52

ZeroX писал(а):Если не в курсе: <img src="http://yoursite.com/yourscript.php"> будет выводится картинка

В этом phpBB вот это - Изображение - не работает :-(((
Картинка вставляется, только если у неё правильное "расширение".
Изображение

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 06.07.2005 (Ср) 23:28

tyomitch писал(а):
ZeroX писал(а):Если не в курсе: <img src="http://yoursite.com/yourscript.php"> будет выводится картинка

В этом phpBB вот это - Изображение - не работает :-(((
Картинка вставляется, только если у неё правильное "расширение".


Если знаком с регулярными выражениями то поймешь:
bbcode.php писал(а):#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie

А переименовывание скрипта в jpg и т.п. непомогает :(
Каждый warning мечтает стать error'om

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.07.2005 (Чт) 0:53

ZeroX писал(а):А переименовывание скрипта в jpg и т.п. непомогает :(

Помогло - видишь же, подпись уже третий день нормально показывается.
Просто я объяснял, почему у меня такой изврат: php-скрипт, выдающий gif-картинку, в файле с расширением jpeg :-)
Изображение

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 07.07.2005 (Чт) 15:35

tyomitch писал(а):Просто я объяснял, почему у меня такой изврат: php-скрипт, выдающий gif-картинку, в файле с расширением jpeg :-)

Зачем такой изврат :?: :?:
Есть же imagecreatefromjpeg, imagejpeg и т.п.
Каждый warning мечтает стать error'om

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.07.2005 (Чт) 17:14

Ты не понял :-)
У меня jpeg используется единственно для того, чтобы phpBB показывала мою картинку. Сама картинка - обычный gif.
Давай, я свой исходник покажу, что ли? :-?
Изображение

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 07.07.2005 (Чт) 18:03

Да незачем исходник. Я то понял что выводится gif обозванный jpeg'ом. По идее phpbb должен хавать и gif.
Каждый warning мечтает стать error'om

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.07.2005 (Чт) 21:39

У меня в той папке лежат и "настоящие" gif-ы. Чтобы они не скармливались PHP, я скрипт положил в jpeg :-)
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.07.2005 (Вс) 4:12

А я-то думаю, чё всё разлезается...
Тёмыч! Ты следи за длиной картинок-то! Вон эта вот, про Евангелие, вызывает появление скроллбаров горизонтальных.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 10.07.2005 (Вс) 6:57

GSerg

Никак нет, все в норме :)

И вообще прогресс уже давно перешагнул через 800х600 :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.07.2005 (Вс) 7:15

Дык нет, батенька, 1024х768, а скроллбар на 10% ширины имеется :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 10.07.2005 (Вс) 7:17

GSerg

Каюсь, моя ошибка :) Я подзабыл что сижу на 1152х864 :roll:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.07.2005 (Вс) 20:40

Проблема с антиалиасингом решена самым дубовым методом: наделал 256 картинок и составляю из них текст.
Ещё, по просьбам трудящихся добавил враппинг. Теперяшняя ширина подписи всем удобна?
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 10.07.2005 (Вс) 22:24

Вполне :).

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 11.07.2005 (Пн) 8:52

а зачем в конце твоей подписи ковычка? т.е <<text>> "
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.07.2005 (Пн) 9:32

tyomitch писал(а):...наделал 256 картинок...

А как же юникод? :)
Да и зачем 256? Хватило бы 224.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.07.2005 (Пн) 14:30

Tin, эт я скопипейстил плохо :oops:
alibek, всё уже лучше: одна картинка, в ней все буквы - http://users.isnet.ru/tyomitch/Verdana.gif
Вместе скрипт+шрифт занимает 4526 байт - есть повод для гордости (ttf с этими 256 символами занимал 43Кб, 256 картинок - 12Кб).

256 было для удобства вывода, чтобы не вычитать 32 каждый раз :-)
А поскольку китайские цитаты я в подпись вставлять всё же не буду, то их мне хватит :-)
Изображение

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 11.07.2005 (Пн) 15:41

Не ну все-таки я смысл этого не понял - у тебя что аватра сильно угловатая выходит что-ли?
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.07.2005 (Пн) 16:23

Tin, смысл чего ты не понял, и кто выходит угловатый? :-?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.07.2005 (Пн) 16:27

Тёмыч, ты просто достиг того уровня в генереньи картинок, что чел не просёк, что это картинка :)
Это последняя ступень Искусственного Изображения! :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 12.07.2005 (Вт) 6:20

Не... я понял что это картинка, я только не понял зачем это картинка...
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.07.2005 (Вт) 7:37

Чтобы генерить рандомную подпись, т.к. форум не поддерживает include-директивы.
Lasciate ogni speranza, voi ch'entrate.

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron