User Tag List

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 31 по 40 из 78

Тема: Создание графического редактора

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    20.01.2011
    Адрес
    Краснодар
    Сообщений
    138
    Спасибо Благодарностей отдано 
    99
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Чуть позже алгоритм набросаю, если кому интересно.
    ну и где же обещанное )

    - - - Добавлено - - -

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Можете дать ссылку на .spr, где эти байты не равны 0?
    вообщето да - этоя ошибся, извиняюсь

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yur Посмотреть сообщение
    ну и где же обещанное )
    Так здесь же http://zx-pk.ru/threads/25281-sozdan...l=1#post874626 расписал формат

    А сам алгоритм вот, вроде готов:
    // Распаковка сжатых данных.
    fsize:=fsize-1; // Ставим указатель на последний загруженный байт
    while buf^[fsize]=0 do
    fsize:=fsize-1;
    cpos:=32767;
    repeat
    b:=buf^[fsize-1];
    c:=buf^[fsize ]-1;
    if c>=128 then begin // Сжатые данные. Скопировать "b" "c" раз
    c:=c and $7F;
    if cpos-c >=0 then
    for x:=0 to c do
    spb^[cpos-x]:=b;
    end else begin // Несжатые данные, просто скопировать "c" байт
    if (cpos-c >=0) and (fsize-c-1 >0) then
    for x:=0 to c do
    spb^[cpos-x]:=buf^[fsize-x-1];
    fsize:=fsize-c; // Сдвинем указатель в источнике на "с" байт
    end;
    cpos:=cpos-c-1; // Сдвиг указателя приёмника на следующий байт
    fsize:=fsize-2; // Сдвиг указателя источника на следующиую группу байт
    until fsize<=18;

  4. #3

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот, что удалось узнать по формату .spr:

    - Размер файла кратен 128 байт. Неиспользуемые байты в конце заполнены 0.
    - Сохранены 4 битовые плоскости от Вектор 06ц. Распаковываются в 32 КБ единым куском как есть,
    без разбивки на битовые плоскости, столбцы и строки.
    - Вперемешку используется сжатие RLE и куски несжатых данных.
    - В файле по смещению 0 хранится 16 байтовая палитра вектора.
    - Байты 16 и 17 непонятного назначения, во всех просмотренных файлах .spr равны 0.
    - По смещению 18 начинается массив самого изображения.
    - Байты изображения начинаются с левого нижнего угла и поднимаются сначала вверх и затем сдвиг вправо,
    что соответствует организации экранной памяти вектора.
    - В данных изображения могут идти как области несжатых байт, так и сжатых.
    Несжатые данные. Подряд идут N байт несжатых данных, их надо просто скопировать.
    За ними идёт байт со значением N. При этом, N принимает значения от 1 по 128.
    Сжатые данные. Идёт байт данных, который повторяется N раз. За ним идёт байт со значением 128+N.
    N принимает значения от 1 до 127.
    - С начала файла однозначно не распаковать данные, поэтому, нужно распаковывать с конца,
    тогда сначала будет идти количество повторов или количество несжатых байт.


    Попробую сделать распаковщик и преобразователь в bmp.

  5. #4

    Регистрация
    20.01.2011
    Адрес
    Краснодар
    Сообщений
    138
    Спасибо Благодарностей отдано 
    99
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    - Байты 16 и 17 непонятного назначения, во всех просмотренных файлах .spr равны 0.
    не во всех

  6. #5

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yur Посмотреть сообщение
    не во всех
    Можете дать ссылку на .spr, где эти байты не равны 0?

    В архиве Amstrad spr.7z и в сгенерированных в sprview эти 2 байта равны 0. Предположу, что один из них может кодировать цвет бордюра, что сейчас не актуально, а второй кодирует используемые битовые плоскости. Хорошо бы разобраться.

  7. #6

    Регистрация
    20.01.2011
    Адрес
    Краснодар
    Сообщений
    138
    Спасибо Благодарностей отдано 
    99
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Предположу, что один из них может кодировать цвет бордюра
    цвет бордюра определяет первый цвет в палитре - в файле spr первый байт

    опять же могу ошибаться

    - - - Добавлено - - -

    только что протестировал байты №16,№17 - на смену цвета бордюра они не влияют

    - - - Добавлено - - -

    Цитата Сообщение от shuran33 Посмотреть сообщение
    yur, а под Mac OS нет сборки?
    к сожалению нет
    Последний раз редактировалось yur; 15.06.2016 в 20:39.

  8. #7

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    yur, ну что, сделали компрессор в формат .spr? Я начал, но ошибка проскакивает, не пойму где.

  9. #8

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чтение палитры и распаковку данных вроде сделал. Теперь надо битовые плоскости преобразовать в формат windows bmp. Только не хочу возиться с 4 битной картинкой и палитрами, поэтому сделаю преобразование в 16 битную картинку.

  10. #9

    Регистрация
    20.01.2011
    Адрес
    Краснодар
    Сообщений
    138
    Спасибо Благодарностей отдано 
    99
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Только не хочу возиться с 4 битной картинкой и палитрами, поэтому сделаю преобразование в 16 битную картинку.
    ни чего сложного не вижу

  11. #10

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,973
    Спасибо Благодарностей отдано 
    1,083
    Спасибо Благодарностей получено 
    1,177
    Поблагодарили
    916 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оффтоп

    Здравствуйте.
    Ковыряю тут тоже потихоньку граф. форматы Вектора. Возник вот такой вопрос: есть ли у кого все 256 цветов Векторовской палитры в стандартном RGB-виде (для конвертирования в BMP)?
    [свернуть]
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 69
    Последнее: 18.12.2016, 19:12
  2. Ответов: 48
    Последнее: 25.06.2013, 01:24
  3. Ассемблер для стороннего редактора
    от Titus в разделе Эмуляторы
    Ответов: 3
    Последнее: 05.01.2010, 14:49
  4. Проект муз. редактора для AY
    от Bulba в разделе Музыка
    Ответов: 36
    Последнее: 09.09.2005, 20:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •