User Tag List

Страница 5 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 41 по 50 из 78

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

  1. #41

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

    По умолчанию

    yur, понятно. Уже нашёл ошибку, хорошо кодирует. Могу выложить и кодер и декодер, но мне интересно ещё посмотреть и вашу реализацию со свежим взглядом. К тому же, файл получается чуть больше, чем от sprview.

  2. #42

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

    По умолчанию

    Вот мой вариант компрессора. На входе в SrcCount количество байт для сжатия. Для вектора будет 32768. Через переменную DestCount на входе передаётся размер буфера и он очищается. На выходе содержит количество использованных байт. Это количество байт может быть сохранено в файл при соответствующем округлении до 128.

    Код:
    // Сжатие данных изображения Вектор 06Ц
    procedure PackVEC2SPRv1(SrcBuf:pbytearray; SrcCount:integer; DestBuf:pbytearray; var DestCount:integer);
    var
      i:integer;
      b,ce,cne:byte;
      ob:word;
    begin
      // На входе 32 килобайт экранной области. На выходе в переменной DestCount
      // возвращается номер последнего байта в сжатых данных. Размер не может превышать 34048
      // В самом неудачном случае размер выходных данных получится 18+32768+259=33045 байт
      // Процедура не трогает первые 18 байт выходного массива, поэтому, палитру можно записать до сжатия.
    
      // Очистка области от 18 до DestCount (34047) байт
      for i:=18 to DestCount-1 do begin
        DestBuf^[i]:=0;
      end;
    
      // Сжатие данных
      DestCount:=18;
      ce:=0;
      cne:=0;
    //  ob:=SrcBuf^[0];
      ob:=256;
      for i:=0 to SrcCount-1 do begin
        b:=SrcBuf^[i];
    
        // Компрессор. Вариант 1
        if b=ob then begin
          // Если байт равен предыдущему, то если есть группа разных байт, запишем их
    
          if cne>0 then begin //Нашли 2 одинаковых байта и счётчик разных больше 0, то
            cne:=cne-1; // его нужно уменьшить на 1
            ce:=ce+1;   // и счётчик одинаковых увеличить на 1
          end;
    
          if cne>0 then begin  // Если разных байтов >0 то записываем их в буфер
            DestCount:=DestCount+cne;
            DestBuf^[DestCount]:=cne;
            repeat
              DestBuf^[DestCount-cne]:=SrcBuf^[i-cne-1];
              cne:=cne-1;
            until cne=0;
            DestCount:=DestCount+1;
          end;
    
          // Далее считаем одинаковые байты
          ce:=ce+1;
          if ce>=127 then begin // Если количество одинаковых байт >=127 то записываем это
            DestBuf^[DestCount  ]:=b;
            DestBuf^[DestCount+1]:=ce+128;
            DestCount:=DestCount+2;
            ce:=0;
          end;
        end else begin
          if ce=1 then begin
            cne:=cne+1;
            ce:=0;
          end;
          if ce>1 then begin // Если есть группа одинаковых байт, запишем их
            DestBuf^[DestCount  ]:=ob;
            DestBuf^[DestCount+1]:=ce+128;
            DestCount:=DestCount+2;
            ce:=0;
          end;
    
          // Считаем разные байты
          cne:=cne+1;
          if cne>=127 then begin  // Если разных байтов >= 127 то записываем их в буфер
            DestCount:=DestCount+cne;
            DestBuf^[DestCount]:=cne;
            repeat
              DestBuf^[DestCount-cne]:=SrcBuf^[i-cne+1];
              cne:=cne-1;
            until cne=0;
            DestCount:=DestCount+1;
          end;
        end;{}
        ob:=b;
      end;
    
      // В конце записываем остаток
      if cne>0 then begin  // Если разных байтов >0 то записываем их в буфер
        DestCount:=DestCount+cne;
        DestBuf^[DestCount]:=cne;
        repeat
          DestBuf^[DestCount-cne]:=SrcBuf^[SrcCount-cne+1];
          cne:=cne-1;
        until cne=0;
        DestCount:=DestCount+1;
      end;
    
      if ce>0 then begin // Если есть группа одинаковых байт, запишем их
        DestBuf^[DestCount  ]:=ob;
        DestBuf^[DestCount+1]:=ce+128;
        DestCount:=DestCount+2;
      end;
    
    end;
    Последний раз редактировалось AzAtom; 27.06.2016 в 12:17.

  3. #43

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,968
    Спасибо Благодарностей отдано 
    1,074
    Спасибо Благодарностей получено 
    1,171
    Поблагодарили
    914 сообщений
    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. #44

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение

    Оффтоп

    Здравствуйте.
    Ковыряю тут тоже потихоньку граф. форматы Вектора. Возник вот такой вопрос: есть ли у кого все 256 цветов Векторовской палитры в стандартном RGB-виде (для конвертирования в BMP)?
    [свернуть]
    С программой SPRView есть файлик "color.pal" - может в нём есть что-то подходящее...

  5. #45

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    С программой SPRView есть файлик "color.pal" - может в нём есть что-то подходящее...
    Ага. Через минуту-две, как написал, о нем же вспомнил. И да, там именно то, что надо, то есть вся палитра в RGB.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    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)
    [свернуть]

  6. #46

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

    По умолчанию

    AzAtom, Спасибо за алгоритм - у меня действительно нет сейчас времени, чуток позже

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

  8. #47

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

    По умолчанию

    Итак, добавил небольшие изменения:
    1) Авто коррекция палиты - теперь при открытиии bmp с палитрой оная исправляется в Векторовскую автоматом а также при открытии палитры pal тоже автокоррекция
    2) Палитра пера и заливки выбирается и настраивается отдельно - правой кнопкой мыши выбирается палитра пера, левой палитра заливки
    3)Добавлена индикация обозначения палитры пера и заливки
    4) Исправлена ошибка - при открытии палитры использовался один диалог открытия и при попытке открыть файл bmp приложение вылетало - теперь всё в норме

    На остальное пока нет времени - Сами понимаете лето на исходе, надо зарабатывать
    Вложения Вложения
    Последний раз редактировалось yur; 26.08.2016 в 17:56.

  9. #48

    Регистрация
    22.12.2007
    Адрес
    г. Владивосток
    Сообщений
    915
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию



    Дружище, а ты сам пробовал рисовать в своем редакторе? Ты им доволен? На кой это выкладывать?

  10. #49

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

    По умолчанию

    Никто кроме тебя пока что не жаловался
    А вообще я уже писал- не нравится проходи мимо иначе сам пошлю

  11. #50

    Регистрация
    22.12.2007
    Адрес
    г. Владивосток
    Сообщений
    915
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Считай, что я не равнодушный. Capture color нет, увеличение 8 мало. И тогда уж убери разворот на весь экран. Если ты это делаешь для себя, базару нет, но когда выкладываешь для всех, это выглядит как - "я научился что-то делать на pc, зацените!"

Страница 5 из 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

Ваши права

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