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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2018, 09:39   #1
az121970
Новичок
Джуниор
 
Регистрация: 13.03.2018
Сообщений: 10
По умолчанию Конвертация BMP в массив и обратно

Добрый день уважаемые программисты. Есть проблема с конвертацией Ч/Б bmp изображения в массив и обратным получением изображения из массива.
Код создания текстового массива не мой, нашел на одном из форумов, открываю картинку, сохраняю в текстовом файле:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
bmp:TBitmap;
    i,j:Integer;
    s:string;
    f:TextFile;
begin
  AssignFile(f,'out.txt');
  Rewrite(f);
  bmp:=TBitmap.Create;
  bmp.LoadFromFile('a.bmp');
  for i:=0 to bmp.Height-1 do begin
    s:='';
    for j:=0 to bmp.Width-1 do begin
      s:=s+'$'+IntTohex(bmp.Canvas.Pixels[j,i],6)+';';
    end;
    Writeln(f,s);
  end;
  CloseFile(f);
  bmp.destroy;
end;

На выходе имею (кусок из файла $000000;$000000;$000000;$FFFFFF;$FF FFFF;$FFFFFF
Подскажите пожалуйста как из текстового файла выгрузить все в Image на форме и сохранить в файл с другим именем. Большое спасибо.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось az121970; 13.03.2018 в 10:18.
az121970 вне форума Ответить с цитированием
Старый 13.03.2018, 09:56   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

А нахрена вся эта ректальная аппендектомия?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2018, 10:01   #3
az121970
Новичок
Джуниор
 
Регистрация: 13.03.2018
Сообщений: 10
По умолчанию

Так поставлена задача.
az121970 вне форума Ответить с цитированием
Старый 13.03.2018, 10:01   #4
az121970
Новичок
Джуниор
 
Регистрация: 13.03.2018
Сообщений: 10
По умолчанию

Есть более изящное решение?
az121970 вне форума Ответить с цитированием
Старый 13.03.2018, 10:15   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

прочитать и распарсить строку из текста обратно в бинарный код не сложно.
это что-то вроде:
Код:
  s := '$000000;$000000;$000000;$FFFFFF;$FFFFFF;$FFFFFF;';
  i := 1;
  while i<Length(s) do begin
    //записать куда надо StrToInt(copy(s,i,7));
    Inc(i,8);
  end;
но с этим -
Цитата:
Сообщение от az121970 Посмотреть сообщение
выгрузить все в Image на форме и сохранить в файл с другим именем.
я Вам не помогу.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.03.2018, 10:16   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от az121970 Посмотреть сообщение
Так поставлена задача.
Как задача звучала? Просто выгрузить и загрузить?

Цитата:
Сообщение от az121970 Посмотреть сообщение
Есть более изящное решение?
Решение чего? КопиФайл, например.
p51x вне форума Ответить с цитированием
Старый 13.03.2018, 10:29   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Коль нужно в текстовом виде сохранять, то в base64 несомненно более изящное решение. Посмотри как делфи сохраняет имедж с картинкой в dfm
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.03.2018, 10:56   #8
az121970
Новичок
Джуниор
 
Регистрация: 13.03.2018
Сообщений: 10
По умолчанию

base64 Не подходит. С текстовым файлом перед обратной загрузкой еще необходима обработка.
az121970 вне форума Ответить с цитированием
Старый 13.03.2018, 10:59   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Показывай оригинал задания.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2018, 11:36   #10
az121970
Новичок
Джуниор
 
Регистрация: 13.03.2018
Сообщений: 10
По умолчанию

ТЗ нет. Задача поставлена следующим образом, со скриншота экрана выделить определенную область, преобразовать в Ч/Б и сохранить в BMP. Далее по нажатию кнопки сохраненное изображение попиксельно внести в *.txt файл. По нажатию другой кнопки из полученного *.txt построить опять изображение с выводом на image и сохранением с другим именем файла. Застрял только на последнем этапе перекодировки содержимого *.txt обратно в BMP.
az121970 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертация bmp изображения в матрицу и обратно as.ex C# (си шарп) 31 20.11.2016 07:48
конвертация gif в bmp belyjj Общие вопросы Delphi 7 07.11.2012 23:45
КОНВЕРТАЦИЯ TChar в bmp MOMOTOCHEK Помощь студентам 2 21.03.2011 06:51
Как загрузить BMP в массив и обратно в С++ Ilja Общие вопросы C/C++ 8 07.03.2009 23:48
Конвертация ICO в BMP DeDoK Общие вопросы Delphi 5 15.07.2008 23:44