Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.02.2015, 14:46
DenIvan DenIvan вне форума
Прохожий
 
Регистрация: 25.02.2015
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
Сообщение Получить матрицу изображения

Всем здравствуйте. Необходимо получить матрицу изображения желательно в формате Excel, где каждая ячейка содержит код цвета пикселя (по RGB). Соответственно, размер матрицы - ширина на длина картинки в пикселях. Только вот длина картинки будет, конечно, больше, чем число столбцов в листе Excel (по-моему их там 256). Так что не знаю как получится с Excel. Или таблица всё-равно откроется, хоть столбцов будет сколько угодно? Полученную матрицу нужно сохранить в файл если получится, то ".xls", если нет, то хотя бы в ".txt". В Делфи первый день программирую, языка вообще не знаю, до этого прогел на 1с. Поэтому напишите, пожалуйста, подробный код. Заранее благодарю!
Ответить с цитированием
  #2  
Старый 25.02.2015, 23:22
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Открыв новый проект бросьте на форму кнопку и задайте имя нужного рисунка
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 Line: pByteArray;
 i, j: integer;
 s   : string;
 sl  : TStrings;
 bmp : TBitmap;
begin
 sl := TStringList.Create;
 bmp:= TBitmap.Create;
 bmp.LoadFromFile('Some.bmp');

 for i := 0 to bmp.Height - 1 do
  begin
   s:= '';
   j:= 0;
   Line:= bmp.ScanLine[i];
   while  j <= bmp.Width * 3  do
    begin
     s:= s +
      'R:'  + IntToStr(Line[j])   +
     ' G:'  + IntToStr(Line[j+1]) +
     ' B:'  +IntToStr(Line[j+2])  + '; ';
     inc(j, 3);
    end;
   sl.Add(s);
   end;
 sl.SaveToFile('Some.txt');
 sl.Free;
 bmp.Free;
end;
это сохранит "матрицу изображения" в текстовом формате
Ответить с цитированием
  #3  
Старый 26.02.2015, 09:52
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

размер листа 1 048 576 строк и 16 384 столбца
Ответить с цитированием
  #4  
Старый 26.02.2015, 12:07
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

А что с ЭТИМ собираетесь делать? Особенно с форматом txt?
Ответить с цитированием
  #5  
Старый 26.02.2015, 12:40
DenIvan DenIvan вне форума
Прохожий
 
Регистрация: 25.02.2015
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Получить матрицу

А дальше я буду передавать в 1с для разгадки капчи, работая с таблицами значений. Знаю, что рациональней было бы всё сделать в делфи, но я проглю в 1с.
Ответить с цитированием
  #6  
Старый 26.02.2015, 12:59
DenIvan DenIvan вне форума
Прохожий
 
Регистрация: 25.02.2015
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Получить матрицу

Все это работает только для формата bmp. А как быть с другими форматами файлов (например, jpeg, png, gif)? Щас буду юзать как конвертировать изображение в формат bmp, или есть лучше предложения?
Ответить с цитированием
  #7  
Старый 26.02.2015, 14:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

GDI+ работает с bmp, jpg, gif, png
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 26.02.2015, 14:07
DenIvan DenIvan вне форума
Прохожий
 
Регистрация: 25.02.2015
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Получить матрицу

GDI+ это что: другой язык программирования, или какая-то компонента для делфи?
Ответить с цитированием
  #9  
Старый 26.02.2015, 15:33
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

google легко выдает ответ на этот вопрос.
GDI+: графика нового поколения
GDI+ — графическое ядро нового поколения
по идее от него нужно одно: умение загружать любую графику не разбираясь программисту что за формат. проще говоря нажал кнопку и программа готова)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #10  
Старый 26.02.2015, 18:48
DenIvan DenIvan вне форума
Прохожий
 
Регистрация: 25.02.2015
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Получить матрицу

Всем спасибо за помощь в этой теме! Буду писать новые...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter