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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2013, 15:42   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Если опираться на:
Цитата:
Далее написал программу на Делфи, которая выделяла из картинки прямые горизонтальные и вертикальные линии, при этом по эти данным генерировала код с MoveTo и LineTo. Вроде все просто, кода не более 50 строк.
то:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: tbitmap;
  i, j, k: integer;
  st: tstringlist;
  t: boolean;
begin
  if OpenDialog1.Execute then
  begin
    bmp := tbitmap.Create;
    bmp.LoadFromFile(OpenDialog1.FileName);
    st := tstringlist.Create;
    for i := 0 to bmp.Height - 1 do
    begin
      t := false;
      k := 0;
      for j := 0 to bmp.Width - 1 do
        if t then
        begin
          if bmp.Canvas.Pixels[j, i] <> clblack then
          begin
            st.Append('moveto(' + inttostr(k) + '+w,' + inttostr(i)
                + '+h);lineto(' + inttostr(j) + '+w,' + inttostr(i) + '+h);');
            t := false;
          end;
        end
        else if bmp.Canvas.Pixels[j, i] = clblack then
        begin
          t := true;
          k := j;
        end;
      if t then
        st.Append('moveto(' + inttostr(k) + '+w,' + inttostr(i)
            + '+h);lineto(' + inttostr(bmp.Width - 1)
            + '+w,' + inttostr(i) + '+h);');
    end;
    st.SaveToFile(OpenDialog1.FileName + '.txt');
    st.Free;
    bmp.Free;
  end;
end;
Нету никакой фильтрации изображения и упрощения линий.
Параметры w и h введены для возможности подвинуть рисунок этими константами.
41 строка.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 21.05.2013 в 15:44.
BDA вне форума Ответить с цитированием
Старый 21.05.2013, 20:49   #12
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,554
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
а можно взглянуть на исходники этой программы... Если конечно не жалко...
Без проблем.
Вложения
Тип файла: rar Vert.rar (182.1 Кб, 19 просмотров)

Последний раз редактировалось Arigato; 21.05.2013 в 22:40.
Arigato вне форума Ответить с цитированием
Старый 21.05.2013, 22:07   #13
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

О фильтрации ТС ничего не говорилось. Глянул исходник, векторизация присутствует. Правда, в серьезных векторных редакторах линии описывается формулой, а не точками, но и это не волнует ТС.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 21.05.2013, 22:47   #14
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,554
По умолчанию

Хм, только сейчас заметил ошибку, из-за которой создавались только горизонтальные линии, а вертикальные - нет. Исправил и перезалил тут: http://programmersforum.ru/showthrea...6380&page=2#12 и тут: http://programmersforum.ru/showthread.php?t=236380#4 (добавлена еще отрисовка отдельных пикселей).
Arigato вне форума Ответить с цитированием
Ответ


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