Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Язык Си. Создание эффекта разлагания картинки. (чтоб она сгнила и превратилась в труху) 
:(
    Опции темы
Frostya
Дата 9.5.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.5.2009
Где: Russia, Saint-Pet ersburg

Репутация: нет
Всего: нет



Доброго времени суток!

Хочу написать вот такую небольшую прогу:

Пользователь выбирает любую картинку, а программка делает с ней такой эффект, чтобы картинка сначала "сгнила", а потом превратилась в труху.
Пишу на языке Си под DOS в Borland С++ 3.1. Под винду писать не умею пока.  smile 

Вопрос 1: Как вставить картинку в прогу? Какая функция это делает? (если такая есть для ДОСа).
Как я понимаю, должна быть такая функция, которая берёт картинку и вставляет её в массив в формате 3 байта на пиксел (R-G-B)..

Вопрос 2: Чтобы сделать такой эффект, мне сказали пользоваться фильтрацией изображения и увеличением контраста. Так вот, если кто подскажет, где найти информацию об алгоритмах данных эффектов, буду оч признателен. smile
PM   Вверх
GoldFinch
Дата 9.5.2009, 19:37 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



пиши под винду
PM MAIL ICQ   Вверх
Frostya
Дата 9.5.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.5.2009
Где: Russia, Saint-Pet ersburg

Репутация: нет
Всего: нет



GoldFinch, не-а, не катит.. мне под ДОС надо..
PM   Вверх
zim22
Дата 9.5.2009, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Frostya @  9.5.2009,  18:44 Найти цитируемый пост)
 где найти информацию об алгоритмах данных эффектов, буду оч признателен.

Image Processing Fundamentals


--------------------
PM MAIL   Вверх
Wolf
Дата 9.5.2009, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 9.6.2006
Где: Нижневартовск

Репутация: нет
Всего: нет



Frostya, тебе придётся попрограммировать на языке ассемблера. По крайней мере делать вставки. Потому что BGI наврядли тебе подойдёт. Там вроде индексная палитра и низкая скорость. Почитай описание формата bmp. А готовых функций нет и быть не может. Под дос то...
PM MAIL ICQ   Вверх
math64
Дата 9.5.2009, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Не нужно ассемблерых вставок
Разберись с форматом файла bmp - придётся грузить вручную
Есть функции getimage() putimage() - разберись в каком формате они сохраняют картинку, т.е. считай bmp, попиксельно выведи на экран, вызови getimаge, буфер сохрани в файл и разберись как он сохраняется (формат простой, но зависит от графического режима)
Во второй версии программы используй putimage для вывода изображения.
PM   Вверх
J0ker
Дата 10.5.2009, 08:25 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(Wolf @  9.5.2009,  22:45 Найти цитируемый пост)
языке ассемблера

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


--------------------
user posted image
PM MAIL   Вверх
math64
Дата 10.5.2009, 18:10 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Цитата(J0ker @  10.5.2009,  08:25 Найти цитируемый пост)
ну раз это чье-то имя, то извольте писать его с заглавной буквы - язык Ассемблера

Ассемблер - это не чьё-то имя, это программа, которая транслирует программу на языке ассемблера в объектный код.
Для каждого процессора свой язык ассемблера (и соответственно ассемблер), а для x86 даже несколько: от Intel, Micrrosoft, Borland и GNU gas.
PM   Вверх
J0ker
Дата 10.5.2009, 19:38 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(math64 @  10.5.2009,  18:10 Найти цитируемый пост)
Ассемблер - это не чьё-то имя, это программа, которая транслирует программу на языке ассемблера в объектный код.
Для каждого процессора свой язык ассемблера (и соответственно ассемблер), а для x86 даже несколько: от Intel, Micrrosoft, Borland и GNU gas. 

в таком случае учите русский язык  smile 
ЗЫЖ тем, кто ставит минусы - тот-же совет - учите русский язык  smile 

Это сообщение отредактировал(а) J0ker - 10.5.2009, 20:25


--------------------
user posted image
PM MAIL   Вверх
EvilsInterrupt
Дата 13.5.2009, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



J0ker, 
Я громадный любитель всего низкоуровневого, начинал с debug.com в маш.командах, продолжил tasm-ом, пересел на masm32 и потом на fasm , кажется это всерьез. Это к тому, что хоть как-то могу говорить и утверждать, что языка Ассемблер нет в природе ). Более того, это все равно что сказать язык MS Visual Studio 2008 Team Suite ) . Ассемблер это транслятор из мнемокода(совокупность мнемоник) в объектный код и только!!! А уж далее файлы с объектным кодом обрабатываются линкером.

Еще раз замечу, выражение "язык ассемблера" имеет право на жизнь, а "Язык программирования Ассемблер" нет .)


PM MAIL WWW ICQ Jabber   Вверх
Static
Дата 13.5.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: нет
Всего: 2



 smile 
Был согласен с J0ker'ом, но, справедливости ради, полез в википедию... Удивился. Конечно, вики - не истина в последней инстанции, но все же.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
bsa
Дата 14.5.2009, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
Давайте вернёмся к теме обсуждения.

Frostya, зря была выбрана эта задача, так как под ДОС будут серьезные проблемы. Например:
1. стандартная библиотека BGI не позволяет использовать более 256 цветов, а в разрешении 640х480 (максимальное) - только 16
2. 24-х битная картинка размером 640х480 займет в памяти 900КБ. При том, что доступная для ДОС память 640 КБ. А твоя программа может использовать и того меньше, при том, что выделить кусок памяти объемом более 65535 байт для тебя будет очень нетривиальная задачка (хотя и можно это сделать).
PM   Вверх
math64
Дата 14.5.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Если не хватает 640К - есть DPMI-расширители, позволяющие использовать всю память компьютера. Вместо BGI можно использовать другую графическую библиотеку. Но тогда программа будет работать только под DOS.
PM   Вверх
bsa
Дата 14.5.2009, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



math64, для использования DPMI нужно другой компилятор использовать, не так ли?
Я думаю, что есть два решения проблемы: смена ОС и смена задания.
PM   Вверх
Alca
Дата 14.5.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Фильтр Размытие

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  Smoothing.cpp 10,21 Kb


--------------------
PM WWW ICQ Skype Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0571 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.