Задача вроде несложная, но решить не получается...
На сайте http://www-128.ibm.com/ … bmp/?dwzone=wireless можно подсмотреть формат файла. Как "вручную", т.е. без использования конвертеров, написать такую картинку? хотя бы ту, что описана в примере... так как нужно не перевести формат уже известной картинки, а нарисовать её из данных, полученных также в виде двоичного файла (с предварительным преобразованием).
Есть вариант подключения библиотеки GD, но этот вариант менее предпочтителен, тем более что попытки подключения не увенчались успехом(((
P.S. Работаю под Windows
Для: Катенька
Ура! Девушка на нашем празднике жизни!
Установка GD не прошла успешно скорее всего, потому что вы просто скачали пакет и пытались ставить его через makefile.pm. Чтож, если у вас на компе не стоить C++ компилятора, то тогда у вас действительно ничего не выйдет, есди же стоит...
То на примере Visual Studio я объясню как это дело поставить.
И так, все делаем через консоль. Идем по адресу %VS_Path%/Common7/tools/
Там запускаем vsvars32.bat. Этот скрипт добавит пути к компилятору, библиотекам, заголовочным файлам..
Теперь идем в пупку с расспоковынным GD и пробуем
perl makefile.pl
nmake
nmake install
Если что-то не выйдет, то надо ручками ковыряться в makefile'е
Есть более демакратичный метод. А именно ppm.
Именно через него ставятьчся любые пакеты без всяких проблем, программа сама отслеживает все зависимости. Так что набирайте в cmd: ppm install GD
и все будет
Хотя могут быть проблемы с репозиториями.
Я же посоветую вам еще обратить внимание на модуль ImageMagick
Удачи.
во-первых, большое спасибо за ответ!
Стоит VisualStudio.net, точнее на другом компутере, но можно поставить на этот без проблем. Пробовала и через CPAN, и вручную через makefile, но всё как-то не шло, я вообще в этой области ПОЛНЫЙ новичок, поэтому действовала по инструкциям, найденным в интернете... сейчас попробую по Вашему руководству, надеюсь, что получится.
Но ещё больше хотелось бы узнать как сделать картинку из 0 и 1... потому что этот метод более предпочтителен... если это вообще возможно. Скопировать байты заголовка и информационные из сконвертированного в wbmp файла в новый можно, но это получается как-то нехорошо, надо всегда иметь такой файл со всем набором байтов от 00000000 до 11111111
то есть сначала написовать его в paint и всегда с собой "носить"... я наверное, непонятно объясняю
P.S. Vovochka, жаль что Вы из Владивостока, а так бы я с удовольствием пригласила на чай)))
На самом деле собирать в ручную - способ не очень приятный, но знать его стоит ![]()
Я так и апач собирал и модули к нему... Знать стоит.
А модули к перлу стоит ставить через ppm, а не через cpan. Так как cpan ориентируеться на makefile, и опять таки, если при сборке требуеться скомпилировать библиотеку, ничего не выйде.
ImageMagick - настоятельно рекомендую, мне нравиться больше, чем GD. Если не поможет для ваших целей, чтож, придеться вам побитно файл писать
Не скажу, что перл для этого удобен.
P.S. Чай люблю
И симпатичных девушек тоже (надежда умерает последней)
Ну вот, вышел тормоз со студией, кто-то украл диск) а вот с ppm говорит вот что:
DBI connect<'dbname=C:\Documents and Settings\ pЭ \Application Data/ActiveState/ActivePerl/819/ppm-MSWin32-x86-multi-thread-5_8.db','',...>
failed: unable to open database file<1>
что я неправильно делаю? модуль и сама библиотека в папке Perl также в отдельных папках, может, надо модуль куда-то так выложить? какие файлы?
я не знаю что такое репозитории
Кстати, чем модуль ImageMagic лучше GD в плане рисования? Думаю, для меня будет достаточно GD... мне нужно получить монохромное предельно простое изображение...
И ещё раз... всё-таки, значит, побитно можно написать? только как??? если это не очень сложно, подскажите, как? а то когда я просто записываю в файл тупо 0-ки и 1-ки согласно формату, картинка не отображается
Конечно, не хотелось бы наглеть, но... может, кусочек кода???
P.S. Вы мозг... апач я вообще боюсь... а мне ещё предстоит...
А ещё мы живём а разное время... а я-то думаю, что человеку ночью не спится
И ещё: попробовала через Студию. Распаковала GD уже чуть ли не во все папки
Вот что вышло:
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools>vsvars32.bat
Setting environment for using Microsoft Visual Studio .NET 2003 tools.
<If you have another version of Visual Studio or Visual C++ installed and wish to
use its tools from the command line, run vcvars32.bay for that version.>
C:\Perl\bin\perl makefile.pl
Can't locate ExtUtils/MakeMaker.pm in @INC <@INC contains: C:/Perl/site/lib C:/Perl/lib .> at makefile.pl line 1.
BEGIN failed--compilation aborted at makefile.pl line 1.
А библиотеку и модуль я уже тоже везде распихала, так что я не знаю почему он не может найти этот файл... вообще-то его и нет
да, файла makeMaker.pm я нигде найти не могу
ну всё, я не знаю что делать
А на том компе где Студия, ppm вообще просто так нет, есть ppm-shell какой-то, я попробовала через него, он говорит то же cамое (Can't locate... ) но только про файл strict.pm ... at ppm-shell line 3.
ну вот, всё нет ответа... спать...
Катенька У меня есть ICQ и в профиле можно найти. Если я в сети, значит я в сети.
(Не смотря на то, что вы тоже указали свой номерок, инфа по нему какая-то левая.)
Что за урезанный перл у вас стоит? Никогда еще не видел таких проблем.
Снесите его, зайдите на activestate.com и скачайте последний. Все там будет шоколадно.
Правда ~17 мегабайт скачать... Хотя как я знаю, вам не должно быть проблемно.
Код, косательно побайтовой записи:
Вы должны прекрасно понимать, что у монохромного bmp карта цветов кодируеться не байтами, а битами.
посему 1 байт закодирует вам 8 пикселей.
Спасибо огромное!
Да, про пиксели я конечно понимаю. Вот только снова не получается получить картинку... При записи в файл, а делаю я это таким образом, используя Ваш код:
там ссылка на формат есть, заголовок - это два нулевых байта
http://www-128.ibm.com/developerworks/libr...dwzone=wireless
+ еще 2 байта на длину и щирину.
Ладно, позже выложу рабочий код, ай да кто быстрее ![]()
У вас весь день впереди, а у меня уже вечер.
только я вряд ли смогу выложить рабочий, я это давно пытыюсь сделать))) А сколько сейчас? почти 2 часа ночи??? нее, 6 часов
я только проснулась
но, как и всегда, буду пытаться что-то написать...
ААААА!!! ВЫ ГЕНИЙ!!!!!!
Почему я не нашла этого сисврайта и чудесного chr??? Я счастлива!!! Конец мучениям!!! ОГРОМНОЕ СПАСИБО! Вы не представляете, что для меня сделали!!! Круто....
Ну, и напоследок, маленький вопросик по коду
Что это за атрибут для binmode - ' :raw'???
Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)