Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ 2 вопроса, про картинки и звук

Автор: Rus1 5.11.2006 5:32

Кому не трудно ответьте пожалуйста.

1. Как можно вставить картинку в программу? 3.gif

2. Можно ли узнать всю очередность параметра функции sound() какого-нибудь звука (например, в формате MP3)? !mofon.gif

Автор: Archon 5.11.2006 6:14

1. http://forum.pascal.net.ru/index.php?showtopic=4533
2. mp3 - слишком круто. Начни с wav. http://forum.pascal.net.ru/index.php?act=Attach&type=post&id=976 программа, воспроизводящая wav через спикер. Если нужно описание формата, говори.

Автор: Rus1 6.11.2006 8:38

После запуска одной из этих программ у меня стал долго грузиться (при включении) компьютер, стал часто просто вырубаться, и вообще сплошные тормоза пошли, почему не понимаю. sad.gif

Автор: lapp 6.11.2006 16:06

Цитата(Rus1 @ 6.11.2006 5:38) *

После запуска одной из этих программ у меня стал долго грузиться (при включении) компьютер, стал часто просто вырубаться, и вообще сплошные тормоза пошли, почему не понимаю. sad.gif

Ты хочешь сказать, что скачал Паскалевский сорс, сам его откомпилировал, запустил - и с тех пор начались неприятности?..
Если так, то ситуация в высшей степени странная. Скорее всего - совпадение.. Что-то еще произошло.

Автор: Rus1 6.11.2006 17:56

сорс - это что такое?

Может быть совпадение. Скачал я все программы ночью, сразу после того, как появилось сообщение Archon'а. Что я еще делал ночью я не помню, но утром компьютер начал глючить.
При включении бывает появляется надпись (на англ.), смысл такой, диск не читает и надо нажать ctrl+alt+del.

Автор: lapp 6.11.2006 18:10

Цитата(Rus1 @ 6.11.2006 14:56) *

сорс - это что такое?
..
утром компьютер начал глючить.
При включении бывает появляется надпись (на англ.), смысл такой, диск не читает и надо нажать ctrl+alt+del.

сорс - исходный (некомпилированный) код на языке, от англ. source (источник)
Или ты качал исполняемые (exe) файлы?

Автор: volvo 6.11.2006 19:05

Цитата
Или ты качал исполняемые (exe) файлы?
Если и качал, то откуда-то из другого места... По ссылкам, приведенным выше, компилированных программ нет. Только исходники.

Автор: Rus1 6.11.2006 19:23

Зашел по ссылке и все скачал. После чего зашел в паскаль, откомпелировал - у большинства ошибки, у других вообще непонятно, например, long - появляется "2006", после чего нажмешь - "2007".
Да вряд ли это программы навредили, у компа моего мозгов нет, вот он и тормозит. smile.gif
Я так и не понял как картинки загрузить. Неужели нет просто какой-нибудь функции, чтоб вставить в программу рисунок?
И со звуком тоже не понял. Формат wav - я у себя не нашел, только AIFF и MP3.

Автор: Rus1 8.11.2006 23:53

Может все-таки кто-нибудь ответит. !4.gif

Автор: volvo 9.11.2006 3:38

Цитата
Неужели нет просто какой-нибудь функции, чтоб вставить в программу рисунок?
Нету... Тебе привели ссылки, где все разжевано. Пользуйся поиском. Например, по слову SBMI, именно эта процедура из модуля BMP отрисовывает файл...

Цитата
например, long - появляется "2006", после чего нажмешь - "2007".
А теперь то же самое объясни так, чтоб можно было понять: какой такой long (откуда вдруг в Паскале взялся Си-шный тип данных?), и какие 2006/2007... Лучше всего - со скриншотами...

Автор: Archon 9.11.2006 4:09

Цитата
Я так и не понял как картинки загрузить. Неужели нет просто какой-нибудь функции, чтоб вставить в программу рисунок?
Для примера, опишу вывод pcx-картинки:

1. Считываешь заголовок (128 байт):
0 Идентификатор разработчика формата (10 = ZSoft .PCX file)
1 Версия
2 Кодировка, обычно 1
3 Число бит на пиксел: 1, 2, 4, 8
4 XMin, Ymin, XMax, YMax (2 байта каждое значение)
12 Горизонтальное разрешение в точках на дюйм (2 байта)
14 Вертикальное разрешение в точках на дюйм (2 байта)
16 Цветовая палитра 16 цветов, схема RGB (48 байт)
64 Зарезервировано
65 Количество цветовых плоскостей
66 Байт на строку. Должно быть чётным. (2 байта)
68 1 = Color 2 = Grayscale (2 байта)
70 нулевые значения (58 bytes)


2. Параметры палитры размещаются в конце файла. Находишь конец файла, отступаешь 768 байт назад, считываешь значения, делишь на 4 (у нас максимальное значение цвета - 64, а не 256). Устанавливаешь палитру.

3. Данные находятся сразу после заголовка. Устанавливаешь туда указатель. Считываешь байт. Если старшие 2 бита - нулевые, выводишь на экран, если единичные, то 6 младших битов содержат значение, указывающее, сколко раз следующий байт должен быть выведен на экран. Повторять, пока не кончатся байты в области данных.

Что не ясно?
Цитата
И со звуком тоже не понял. Формат wav - я у себя не нашел, только AIFF и MP3
Запусти у себя на компе поиск файлов по маске *.wav

Автор: Rus1 22.11.2006 15:33

Извините что долго не писал.
Archon, да вообще ничего не понятно wacko.gif Покажи пожалуйста на примере gif или bmp или jpeg, только понятным языком - конкретные действия.

Про long - ерунда какая-то была, думал тоже скачал.

Автор: lapp 22.11.2006 19:40

Цитата(Rus1 @ 22.11.2006 12:33) *

вообще ничего не понятно wacko.gif Покажи пожалуйста на примере gif или bmp или , только понятным языком - конкретные действия.

Rus1, тебе же дали информацию про pcx - какой же тут пример gif или bmp или jpeg? blink.gif
И объяснено все очень доступно..
Читай из файла побайтово. Каждый байт трактуй в соответствии с описанием.
Или можешь сделать record для заголовка и параметров, и сразу считать ее всю, а потом брать поля.
Для нахождения конца файла можешь использовать его длину..
Что еще?

Автор: Rus1 23.11.2006 2:59

Угу, доступней просто некуда...

Цитата(Archon @ 9.11.2006 0:09) *

Для примера, опишу вывод pcx-картинки:

1. Считываешь заголовок (128 байт):
0 Идентификатор разработчика формата (10 = ZSoft .PCX file)
1 Версия
2 Кодировка, обычно 1
3 Число бит на пиксел: 1, 2, 4, 8
4 XMin, Ymin, XMax, YMax (2 байта каждое значение)
12 Горизонтальное разрешение в точках на дюйм (2 байта)
14 Вертикальное разрешение в точках на дюйм (2 байта)
16 Цветовая палитра 16 цветов, схема RGB (48 байт)
64 Зарезервировано
65 Количество цветовых плоскостей
66 Байт на строку. Должно быть чётным. (2 байта)
68 1 = Color 2 = Grayscale (2 байта)
70 нулевые значения (58 bytes)



Считать как я понял надо процедурами assign и rewrite. А вот что считать - не понятно. Что такое "Идентификатор разработчика формата", версия и кодировка чего? и т.д.
У вас же наверняка есть пример программы с картинкой - загрузите её и картинку, мне на примере будет легче понять.

Автор: Archon 23.11.2006 4:55

Для какого режима экрана? Какой графической библиотекой пользуешься?

Автор: Rus1 23.11.2006 5:02

Цитата(Archon @ 23.11.2006 0:55) *

Для какого режима экрана? Какой графической библиотекой пользуешься?


Ну в графическом наверное... а можно и в текстовый режим картинку вставить?
"графическая библиотека" - не знаю что это такое.

Автор: lapp 23.11.2006 20:33

Вот, накарябал пример вывода PCX-картинки..
При этом осознал, что то описание, которое привел Archon, действительно не совсем понятное для новичка в видео-выводе smile.gif. Там совершенно не уделено внимание плоскостям и комбинации из них реальной картинки. Плоскости являются отражением реального устройства видеопамяти в EGA, сейчас они уже не так важны, но формат оказался завязан на них. И собирать из плоскостей изображение - то еще занятие..

Короче, вот прога - разбирайтесь.. Тестировал я ее практически никак, но мои несколько файлов она открыла. Предназначена она только для 16-цветных картинок. Одним словом - просто пример работы с форматом PCX.. Если у кого нет PCX-картинки - берите мою smile.gif (Упс, картинка не вставляется.. sad.gif )
(PS - Добавил возможность загрузки файла PCX smile.gif)
Прикрепленный файл  example.pcx ( 16.18 килобайт ) Кол-во скачиваний: 11

Извините за отсутствие комментариев. Если нужно - впишу.

<...> Time over ... Исходник удален...

PS
Убрал мусор - пару отладочных процедур.

Автор: Rus1 24.11.2006 0:26

Компилятор ошибку находит (№2).

Попробуй еще раз загрузить PCX-картинку, у себя не нашел.


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Archon 24.11.2006 1:04

Цитата
Плоскости являются отражением реального устройства видеопамяти в EGA, сейчас они уже не так важны, но формат оказался завязан на них. И собирать из плоскостей изображение - то еще занятие..
blink.gif В жизни с плоскостями не заморачивался. Вероятно одну только использовал... Картинки я в ACD See перекодировал 256 цветов.
Вот для примера моя программа для вывода pcx в режиме 13h и файл с картинкой.



Прикрепленные файлы
Прикрепленный файл  001.pcx ( 83.52 килобайт ) Кол-во скачиваний: 2
Прикрепленный файл  PCXShow.PAS ( 3.75 килобайт ) Кол-во скачиваний: 281

Автор: Rus1 24.11.2006 1:18

Скинь на e-mail.

Автор: lapp 24.11.2006 5:47

Я добавил возможность загрузки pcx-файлов на форум и вставил свою картинку в сообщение (см. выше).
Кроме того, убрал лишнее из той программы (вчера забыл почистить).
Почему компилятор ругается на открытие файла - не знаю. Я пробовал в FPC с совместимостью с TP7.

Автор: Rus1 25.11.2006 23:40

А как превратить обычный формат (gif или bmp) в pcx?

Автор: lapp 26.11.2006 4:47

Цитата(Rus1 @ 25.11.2006 20:40) *

А как превратить обычный формат (gif или bmp) в pcx?
Ну, например, в любом редакторе (типа Фотошоп).
Если ты спрашиваешь, как это сдеоать самому в программе, то у меня большие сомнения, что ты понял, о чем тут говорилось. И, кстати, нет "обычных" и "необычных" форматов. Есть популярные и не очень, есть новые и устаревшие, для деловой графики и для фото и т.п.. Каждый формат имеет свою спецификацию, которая определяет его возможности, преимущества и пригодность для того или иного использования. Если ты хочешь читать картинки gif или bmp - найди в Инете их формат и организуй чтение по тому же принципу, как писали тебе Archon и я.

Кстати, моя прога заработала у тебя наконец? Подозреваю, что она ругалась просто на отсутствие файда.. Так?

Автор: Rus1 26.11.2006 6:21

Твои подозрения верны - ошибка из-за отсутствия картинки.
В point'е я просто формат psx не обнаружил, а про photoshop как-то не подумал. Хотя всё-равно у меня что-то не получается. Вот гриб (не надо смеятся, само художество не столь важно), нарисовал его тремя цветами (красным, серым, коричневым). Сохранил в формате pcx, открыл в ваших с Archon'ом программах. В Archon'ой получился розовый квадрат на сером фоне, в твоей вообще ерунда. Почему?

p.s. Только сейчас заметил, что из "Новичка" превратился в "Пользователя" smile.gif


Прикрепленные файлы
Прикрепленный файл  0.pcx ( 89.87 килобайт ) Кол-во скачиваний: 8

Автор: lapp 26.11.2006 12:16

> Твои подозрения верны - ошибка из-за отсутствия картинки.
O'kay.

> В point'е я просто формат psx не обнаружил, а про photoshop как-то не подумал.
Ты, наверное, хотел сказать в paint'е.. Да, этот формат был когда-то очень популярен. В древних Виндах в PaintBrush было, кажется, только два формата - bmp и pcx. Но временая меняются..

> Вот гриб (не надо смеятся, само художество не столь важно),
А чего смеяться? мой цветок (см. выше) менее смешон? smile.gif

> нарисовал его тремя цветами (красным, серым, коричневым).
Слушай, неважно, сколькими цветами ты рисуешь (кстати, в твоем рисунке было полно оттенков коричневого и серого, которые любезно подсунул тебе Фотошоп smile.gif). Важно выбрать правильные установки. Когда открываешь новый лист для редактирования, там должно быть 16 цветов (у тебя - 16 миллионов..). Я уменьшил цветность (прикрепляю файл), но ...

> Сохранил в формате pcx, открыл в ваших с Archon'ом программах.
> В Archon'ой получился розовый квадрат на сером фоне,
> в твоей вообще ерунда. Почему?
... но все равно в моей программе показывается неверно sad.gif. Я посмотрю, где ошибка, и постараюсь исправить. Я же предупреждал, что это не есть законченный отлаженный продукт, а только на скорую руку слепленный пример использования формата. Некоторые фичи там вообще не реализованы (например, палитра).

> p.s. Только сейчас заметил, что из "Новичка" превратился в "Пользователя" smile.gif
Ты хотел сказать в "Пионера"? Поздравляю! smile.gif
Будь готов! ©
я через это прошел дважды.. smile.gif


Прикрепленные файлы
Прикрепленный файл  grib16.pcx ( 13.29 килобайт ) Кол-во скачиваний: 3

Автор: Archon 26.11.2006 22:28

Цитата
> нарисовал его тремя цветами (красным, серым, коричневым).
Слушай, неважно, сколькими цветами ты рисуешь (кстати, в твоем рисунке было полно оттенков коричневого и серого, которые любезно подсунул тебе Фотошоп ). Важно выбрать правильные установки. Когда открываешь новый лист для редактирования, там должно быть 16 цветов (у тебя - 16 миллионов..). Я уменьшил цветность (прикрепляю файл), но ...
Да, моя программа работает только с 256 цветам (и в разрешении не выше 320х200, а то на экран не поместится). Меньше тоже не получится.

Перекодирую картинку я в FotoCanvas из поставки ACD See: там в меню есть очень удобный раздел под названием "Цвет", в нём можно легко изменить колличество цветов. Кстати и палитру при необходимости в FotoCanvas отредактировать можно и размер картинки поменять (и вообще нарисовать её там можно всю smile.gif).

Прикрепляю твою картинку, адаптированную для моей программы. (Она у меня гордая: не читает всё подряд, у неё свой собственный формат smile.gif шучу smile.gif)


Прикрепленные файлы
Прикрепленный файл  grib256.pcx ( 82 килобайт ) Кол-во скачиваний: 2

Автор: volvo 28.11.2006 6:09

 ! 
Так... Я не понял... Что происходит в "Теории"? Такие исходники и в "Задачах" рекомендуется приаттачивать, а тут... Archon - тебе особое предупреждение... Ты на форуме не новичок...
Админов это тоже касается...

Либо сами уберете исходники в аттачи, либо я их просто удалю (ровно через сутки после времени этого поста)...
P.S. pcx - файлы выкладываются в виде rar/zip архива...


Автор: Naym91 22.12.2006 1:34

Скажите пежалеста, как вставить музыку формата midi и чтоб она играла через колонки
Плиииз. Очень прошу помогите.....


Цитата(Naym91 @ 21.12.2006 21:32) *

Скажите пежалеста, как вставить музыку формата midi и чтоб она играла через колонки
Плиииз. Очень прошу помогите.....

Я тут новенький