Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2010, 20:04   #31
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,646
По умолчанию

Немного оптимизировал выдаваемый код:

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  f: TextFile;
  i, j: Integer;
  pic, oldcol, col, s: String;
  BM: TBitmap;
  PA: PPicArray;
begin
 if SaveDialog1.Execute then begin
    AssignFile (f, SaveDialog1.FileName);
    Rewrite (f);

    BM := Image1.Picture.Bitmap;
    BM.PixelFormat := pf32bit;

    SetLength (pic, ComboBox1.ItemIndex+1);
    for i := 1 to Length(pic) do
      pic[i] := #45;

    oldcol := '';
    if RadioButton1.Checked then begin
      for i := 0 to BM.Height-1 do begin
        PA := BM.ScanLine[i];
        for j := 0 to BM.Width-1 do begin
          col := Format ('%x', [PA[j]]);
          if col <> oldcol then
          begin
            if oldcol <> ''
                then s := '[/COLOR]'
                else s := '';
            s := s + '[COLOR=#' + col + ']' + pic;
            oldcol := col;
          end else s := pic;
          Write (f, s);
        end;
        Writeln (f);
      end;
      s := '[/COLOR]';
      Write (f, s);
    end
    else begin
    end;
    CloseFile (f);
  end;
end;
Зачем открывать тег COLOR, если цвет не меняется?

P.S. Идея, как еще оптимизировать: находим самое часто встречающийся цвет на картинке и делаем общий тег COLOR на всю картинку. Теперь для создания пикселей данного цвета не надо писать нового тега COLOR, достаточно просто закрыть текущий.

Последний раз редактировалось Arigato; 11.10.2010 в 20:16.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
У rpy3uH-а ДЕНЬ РОЖДЕНИЯ (Юбилей) !!! merax Свободное общение 27 20.06.2008 11:30