А программисты еще остались?

Добро пожаловаться!
Locked
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

А программисты еще остались?

Post by Me »

Или это уже исчезающий вид на фоне пламберов/аудиторов/кораблестроителей? :wink:
Мне нужна бесплатная графическая библиотека php для создания графического файла (GIF, PNG, пофик). Предполагается отрисовка простейших геометрических фигур: линия, окружность, прямоугольник, ну и подгрузка других имиджей плюс вывод простого текста. Гугел упорно приводит на GD Library, но вот по клику на download it for free начинаются непонятки.
Вощем, два вопроса:
1. Какую графику пипл все-таки рекомендует и где ее взять?
2. Чтобы два раза не вставать, имеет ли значение где брать php? Вот эта версия последняя?
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Skorp
Addicted
Posts: 248
Joined: Fri Oct 02, 2009 5:32 am
Location: Vancouver, BC

Re: А программисты еще остались?

Post by Skorp »

Есть ещё богатыри программеры на форуме :)
1. GD библиотека используется для очень простой работы с графикой, я бы посоветовал http://www.imagemagick.org
2. Качать PHP для windows лучше здесь http://windows.php.net/download/
Image
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

Skorp wrote:Есть ещё богатыри программеры на форуме :)
1. GD библиотека используется для очень простой работы с графикой, я бы посоветовал http://www.imagemagick.org
2. Качать PHP для windows лучше здесь http://windows.php.net/download/
Похоже - то что надо! Сенька бери мяч!
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
TeploVsem
Maniac
Posts: 2840
Joined: Sun Feb 18, 2007 5:11 pm
Location: Москва

Re: А программисты еще остались?

Post by TeploVsem »

Вот так вот. Знай наших! :D
Me wrote:Или это уже исчезающий вид на фоне пламберов/аудиторов/кораблестроителей?
Если там чего по водопроводам подредактировать... ну, обращайся тоже... Кстати, как там наша бредовая бизнес-идея с пароходиком? ;)
Спорить со мной бесполезно. Я редко бываю в Интернете ;)
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

Вопрос имею... Наверное, к Skorp ;). Почему вот этот код:

Code: Select all

<?php
header ("Content-type: image/png");
$handle=imagecreatetruecolor(983,669) or die ("Cannot Create image");
$bg_color=imagecolorallocate($handle, 0xFF, 0xFF, 0xFF);
$txt_color=imagecolorallocate($handle, 0, 0, 255);
......
ImagePng ($handle);
?>
выдает мне имидж с черным фоном. Пробовал и десятичную форму: 255,255,255 - пофик. Пробовал другие цвета - пофик. Пробовал imagecolorallocatealpha - пофик. Причем что интересно - цвет текста отрабатывает нормально, т.е. он синий, а вот фон - черный! :evil: Если поменять imagecreatetruecolor на imagecreate, то все работает, но мне нужен imagecreatetruecolor!
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Skorp
Addicted
Posts: 248
Joined: Fri Oct 02, 2009 5:32 am
Location: Vancouver, BC

Re: А программисты еще остались?

Post by Skorp »

Me wrote:Вопрос имею... Наверное, к Skorp ;). Почему вот этот код:

Code: Select all

<?php
header ("Content-type: image/png");
$handle=imagecreatetruecolor(983,669) or die ("Cannot Create image");
$bg_color=imagecolorallocate($handle, 0xFF, 0xFF, 0xFF);
$txt_color=imagecolorallocate($handle, 0, 0, 255);
......
ImagePng ($handle);
?>
выдает мне имидж с черным фоном. Пробовал и десятичную форму: 255,255,255 - пофик. Пробовал другие цвета - пофик. Пробовал imagecolorallocatealpha - пофик. Причем что интересно - цвет текста отрабатывает нормально, т.е. он синий, а вот фон - черный! :evil: Если поменять imagecreatetruecolor на imagecreate, то все работает, но мне нужен imagecreatetruecolor!
Да тут собственно просто надо добавить :)

Code: Select all

imagefill($handle , 0, 0, $bg_color);
А imagecolorallocate просто генерит цвет :)
Вот инфа по этому вопросу: http://php.net/manual/en/function.image ... ecolor.php
Image
User avatar
TeploVsem
Maniac
Posts: 2840
Joined: Sun Feb 18, 2007 5:11 pm
Location: Москва

Re: А программисты еще остались?

Post by TeploVsem »

Me wrote:Вопрос имею... Наверное, к Skorp ;). Почему вот этот код выдает мне имидж с черным фоном.
Ты бы уточнил, о каком дивайсе речь-то? Компьютер тебе выдаёт или там комнатный термостат? Тогда понятно будет, к кому вопрос :wink:

А то вот есть у меня клиенты. Думают, раз термостат программируемый, так его программировать можно. Главное, инструкцию выкинут с упаковкой. А потом давай крутить. Накрутят, аж он синий весь и они далеко не truecolor. Так нет бы на форуме где спросить тоже. Нет, звонят ночью женскими голосами: "Приезжай, я вся замёрзла тут. Эта штучка не греет совсем." И поди объясни жене-то. :?
Спорить со мной бесполезно. Я редко бываю в Интернете ;)
User avatar
Бойцовый кролик
Maniac
Posts: 1792
Joined: Mon Sep 29, 2008 5:00 pm
Location: Waterloo, ON

Re: А программисты еще остались?

Post by Бойцовый кролик »

TeploVsem wrote:....И поди объясни жене-то. :?
У IT-шников для этого много непонятных слов и аббревиатур есть :lol: Как щас помню, лечу в коммандировку, светят мое барахло, спрашивают: "Че это вы тут такое везете"? Я им: "Магнитооптику". Сразу все вопросы отпали :lol:
Во мне однажды умер клоун,
поэт, художник, и певец,
и это кладбище талантов
мешает мне водить комбайн…
JT
Maniac
Posts: 5329
Joined: Fri Feb 23, 2007 11:45 pm

Re: А программисты еще остались?

Post by JT »

Me wrote:

Code: Select all

[size=85]<?php
header ("Content-type: image/png");
$handle=imagecreatetruecolor(983,669) or die ("Cannot Create image");
$bg_color=imagecolorallocate($handle, 0xFF, 0xFF, 0xFF);
$txt_color=imagecolorallocate($handle, 0, 0, 255);
......
ImagePng ($handle);
?>[/size]
выдает мне имидж с черным фоном. Пробовал и десятичную форму: 255,255,255 - пофик. Пробовал другие цвета - пофик. Пробовал imagecolorallocatealpha - пофик. Причем что интересно - цвет текста отрабатывает нормально, т.е. он синий, а вот фон - черный! Если поменять imagecreatetruecolor на imagecreate, то все работает, но мне нужен imagecreatetruecolor!
Купи в Home Depo ведро чёрной краски и не парься. :lol:
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

Skorp wrote:Да тут собственно просто надо добавить :)

Code: Select all

imagefill($handle , 0, 0, $bg_color);
А imagecolorallocate просто генерит цвет :)
Вот инфа по этому вопросу: http://php.net/manual/en/function.image ... ecolor.php
Вот спасибки, добрый человек! Щас все работает. Я повелся вот на это:
Note: The first call to imagecolorallocate() fills the background color in palette-based images - images created using imagecreate().
http://phpbuilder.com/manual/en/functio ... locate.php
Но выясняется, что imagecreate() - это совем не imagecreatetruecolor() ;). Слабею зрением, старею знаете ли. Кхе-кхе ;)

Есть еще один вопрос, раз Вы так энту графику знаете хорошо, то я уж использую момент, с Вашего позволения! ;)
Я создаю png файл, и рисую там линии, окружности, пишу текст, и среди прочего мне надо загрузить много маленьких картинок в разные места моего файла, размером 15x17, 15x15, 17x12, типа такие размеры, +/-. Загружаю их в неперекрывающиеся никоим образом области 10x10, если это имеет значение. Ну, в-общем, их надо рисайсить. Делаю это так:

Code: Select all

.......
$imn = imagecreatefromgif("img.gif");
imagecopyresampled($handle,$imn,81,12,0,0,10,10,imagesx($imn),imagesy($imn));
imagedestroy($imn);
.........
ImagePng ($handle);
?>
По неподдающимся объяснению причинам какие-то картинки грузятся just fine, а какие-то не грузятся вообще, ну или получаются невидимыми, не знаю. Вычитал следующее:
Note: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().
Именно поэтому мне и нужен был imagecreatetruecolor. Спасибо огромное, теперь я могу им пользоваться! Но бляха проблема с незагружаемыми картинками никуда не делась... Я не могу понять, в чем разница между двумя соседними одного и того же рода картинками, причем просто черно-белыми (т.е. казалось бы, при чем тут цвета ваще??). Пробовал imagecopyresized, пробовал imagecopyresampled - не влияет. Пробовал копировать в точно такую же по размеру область - не влияет. От отчаяния попробовал даже сделать background transparent в этих гифовских картинках фотошопом - не помогло... Куда копать-то? :roll: Спасибо за помощь еще раз!
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Skorp
Addicted
Posts: 248
Joined: Fri Oct 02, 2009 5:32 am
Location: Vancouver, BC

Re: А программисты еще остались?

Post by Skorp »

Me wrote: Есть еще один вопрос, раз Вы так энту графику знаете хорошо, то я уж использую момент, с Вашего позволения! ;)
Я создаю png файл, и рисую там линии, окружности, пишу текст, и среди прочего мне надо загрузить много маленьких картинок в разные места моего файла, размером 15x17, 15x15, 17x12, типа такие размеры, +/-. Загружаю их в неперекрывающиеся никоим образом области 10x10, если это имеет значение. Ну, в-общем, их надо рисайсить. Делаю это так:

Code: Select all

.......
$imn = imagecreatefromgif("img.gif");
imagecopyresampled($handle,$imn,81,12,0,0,10,10,imagesx($imn),imagesy($imn));
imagedestroy($imn);
.........
ImagePng ($handle);
?>
По неподдающимся объяснению причинам какие-то картинки грузятся just fine, а какие-то не грузятся вообще, ну или получаются невидимыми, не знаю. Вычитал следующее:
Note: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().
Именно поэтому мне и нужен был imagecreatetruecolor. Спасибо огромное, теперь я могу им пользоваться! Но бляха проблема с незагружаемыми картинками никуда не делась... Я не могу понять, в чем разница между двумя соседними одного и того же рода картинками, причем просто черно-белыми (т.е. казалось бы, при чем тут цвета ваще??). Пробовал imagecopyresized, пробовал imagecopyresampled - не влияет. Пробовал копировать в точно такую же по размеру область - не влияет. От отчаяния попробовал даже сделать background transparent в этих гифовских картинках фотошопом - не помогло... Куда копать-то? :roll: Спасибо за помощь еще раз!
Сам я не смог воспроизвести этот глюк, у меня грузятся даже очень сложные гифы и ресайзятся как угодно :)
Могу предположить, что:
возможно сами файлы неправильные, a что неправильно надо смотреть и сравнивать с другими
криво отрабатывают функции imagesx() и imagesy(), я бы посоветовал попробывать посмотреть что они возвращают
Image
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

Skorp wrote:Сам я не смог воспроизвести этот глюк, у меня грузятся даже очень сложные гифы и ресайзятся как угодно :)
Могу предположить, что:
возможно сами файлы неправильные, a что неправильно надо смотреть и сравнивать с другими
криво отрабатывают функции imagesx() и imagesy(), я бы посоветовал попробывать посмотреть что они возвращают
Ну, это с моим щастем ;)
Да, эти функции для некоторых картинок ничего не возвращают, т.е. значение - пусто. Это что значит? imagecreatefromgif не отработал? Как это забороть-то?
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Skorp
Addicted
Posts: 248
Joined: Fri Oct 02, 2009 5:32 am
Location: Vancouver, BC

Re: А программисты еще остались?

Post by Skorp »

Me wrote:
Skorp wrote:Сам я не смог воспроизвести этот глюк, у меня грузятся даже очень сложные гифы и ресайзятся как угодно :)
Могу предположить, что:
возможно сами файлы неправильные, a что неправильно надо смотреть и сравнивать с другими
криво отрабатывают функции imagesx() и imagesy(), я бы посоветовал попробывать посмотреть что они возвращают
Ну, это с моим щастем ;)
Да, эти функции для некоторых картинок ничего не возвращают, т.е. значение - пусто. Это что значит? imagecreatefromgif не отработал? Как это забороть-то?
Если значение пусто то картинка схлопывается до 0 потому как получается что в значениях размера нет ничего а вот почему это проиходит вопрос к изображению или функции.
Теперь нужно проверить что возвращает функция imagecreatefromgif, если FALSE то уже разбираться с доступностью гифа.
Image
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

Skorp wrote:Если значение пусто то картинка схлопывается до 0 потому как получается что в значениях размера нет ничего а вот почему это проиходит вопрос к изображению или функции.
Теперь нужно проверить что возвращает функция imagecreatefromgif, если FALSE то уже разбираться с доступностью гифа.
Спасибо!!! Буду продолжать борьбу ;)
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

Skorp, ты будешь смеяться, но каким-то образом имя файла влияет на эту байду. Файл nnn_s.gif не грузится ни за что. Переименовал его в mnnn_s.gif - грузится! Почему именно в такое имя? Я заметил, что картинки, начинающиеся на m, грузятся без вопросов. Еще можно сделать как-то с точкой в середине имя файла вроде бы, я вроде заметил пару раз такое, но я не уверен, я не стал возиться.

В-общем, заменяя все имена файлов так, чтобы начинались с "m", скреплю зубами и стараюсь избечь выражения "php sucks !!" недоумения. А тебе - огромное спасибо за помощь! Есть еще программисты на Руси! Не все еще уехали!! :lol:
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Skorp
Addicted
Posts: 248
Joined: Fri Oct 02, 2009 5:32 am
Location: Vancouver, BC

Re: А программисты еще остались?

Post by Skorp »

Me wrote:Skorp, ты будешь смеяться, но каким-то образом имя файла влияет на эту байду. Файл nnn_s.gif не грузится ни за что. Переименовал его в mnnn_s.gif - грузится! Почему именно в такое имя? Я заметил, что картинки, начинающиеся на m, грузятся без вопросов. Еще можно сделать как-то с точкой в середине имя файла вроде бы, я вроде заметил пару раз такое, но я не уверен, я не стал возиться.

В-общем, заменяя все имена файлов так, чтобы начинались с "m", скреплю зубами и стараюсь избечь выражения "php sucks !!" недоумения. А тебе - огромное спасибо за помощь! Есть еще программисты на Руси! Не все еще уехали!! :lol:
Вот это мистика :shock: я поробывал переименовать всё в nnn_s.gif, но у меня всё ок, вообщем это какой-то невоспроизводимый локальный глюк :)
Имя файла там вообще может быть любое, хоть vasya.pupkin и без расширения .gif
Да незачто :)
Не уехали но собираются :)
Image
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

У меня есть сильное предположение ;)
Я использую полный путь к файлу, соответссно все, что начинается на r, t, n, и $ - глючит!
Как-то можно установить директорию by default? opendir - это то?
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Бойцовый кролик
Maniac
Posts: 1792
Joined: Mon Sep 29, 2008 5:00 pm
Location: Waterloo, ON

Re: А программисты еще остались?

Post by Бойцовый кролик »

Me wrote:У меня есть сильное предположение ;)
Я использую полный путь к файлу, соответссно все, что начинается на r, t, n, и $ - глючит!
Как-то можно установить директорию by default? opendir - это то?
It looks like this PHP library treats "\r", "\n" and "\t" as "C" escape sequences. I'm not big specialist in PHP, but as far as I know everything that begins with "$" treated like PHP variable (even in string constants). That could explain "$" prefixed string odd behavior. Try to use "\\r","\\n" and "\\t” instead of “\r","\n" and "\t" respectively and explore PHP documentation regarding escaping "$" symbol.

PS Sorry for English.
Во мне однажды умер клоун,
поэт, художник, и певец,
и это кладбище талантов
мешает мне водить комбайн…
User avatar
Me
Старший лейтенант
Posts: 8554
Joined: Sun Jan 22, 2006 6:23 pm
Location: Toronto

Re: А программисты еще остались?

Post by Me »

Бойцовый кролик wrote:
Me wrote:У меня есть сильное предположение ;)
Я использую полный путь к файлу, соответссно все, что начинается на r, t, n, и $ - глючит!
Как-то можно установить директорию by default? opendir - это то?
It looks like this PHP library treats "\r", "\n" and "\t" as "C" escape sequences. I'm not big specialist in PHP, but as far as I know everything that begins with "$" treated like PHP variable (even in string constants). That could explain "$" prefixed string odd behavior. Try to use "\\r","\\n" and "\\t” instead of “\r","\n" and "\t" respectively and explore PHP documentation regarding escaping "$" symbol.

PS Sorry for English.
Именно, я об чем и говорю! \r - возврат каретки, \n - перевод строки, \t - табуляция, ну и с долларом все понятно. И тебе спасибо ;)
Лучший канал по иммиграции и адаптации в Канаде: https://www.youtube.com/c/GeorgeK_Canada
Telegram: https://t.me/George_K_Canada
User avatar
Skorp
Addicted
Posts: 248
Joined: Fri Oct 02, 2009 5:32 am
Location: Vancouver, BC

Re: А программисты еще остались?

Post by Skorp »

Me wrote:У меня есть сильное предположение ;)
Я использую полный путь к файлу, соответссно все, что начинается на r, t, n, и $ - глючит!
Как-то можно установить директорию by default? opendir - это то?
Ну вот предыдущий оратор меня опередил по поводу эскейпа спец символов :)
От себя добавлю что тут просто будет удобней использовать одиночные кавычки, а при необходимости вставки значения из переменной использовать конкатенацию.
Image
Locked