Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 979

/ вопрос открыт /

Здравствуйте, эксперты!
Доброго времени суток!
Как достать изображение из файла? Файл прикреплен

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Примечание #1 (8 октября 2008, 15:01):
Бетер А В - Это фамилия пациента
Примечание #2 (9 октября 2008, 11:51):

seryoga Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: seryoga (статус: 1-ый класс)
Вопрос отправлен: 8 октября 2008, 14:04
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: ANBsoft

Здравствуйте, seryoga!
Лень оптимизировать и ускорять, если Вам нужно - сделаете (а Вадим К. подскажет как).
Возможно цвет идет более чем 8 бит - лишнее отбросил.
Установите на форме TImage размером 1024х1024.
Даю текст загрузчика картинки:
Var X,Y:Integer;
FF:File of Byte;
b:Byte;
begin
AssignFile(ff,'Single00.img');
Reset(ff);
For X:=1 to 744 do
Read(ff,b); //Пропускаем заголовок
X:=1;
Y:=1;
while not eof(ff) do begin
Read(ff,b);
Image1.Canvas.Pixels[X,Y]:=RGB(b,b,b);
Inc(X);
if x>=946 then begin
x:=0;
Inc(Y);
end;
Read(ff,b);
end;
CloseFile(ff);
end;

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 8 октября 2008, 17:16
Оценка за ответ: 5

Комментарий к оценке: спасибо и на этом но в общем ужастно

Мини-форум вопроса

Всего сообщений: 46; последнее сообщение — 9 октября 2008, 21:05; участников в обсуждении: 3.

Страницы: [« Предыдущая] [1] [2] [3]

ANBsoft

ANBsoft (статус: Студент), 8 октября 2008, 18:49 [#41]:

разобрался, сейчас сделаю
ANBsoft

ANBsoft (статус: Студент), 8 октября 2008, 19:59 [#42]:

Замороченный случай, разрешение цвета 13 бит (по крайней мере в этом файле), с 16 битным цветом работать не приходилось, поэтому создал TIF файл в фотошопе (чтобы не разбираться с его структурой) и вписываю в него Ваши данные.
!!! Не претендую на то, что это оптимальный вариант, но зато картинка нормально видна, дальше разбирайтесь сами.
http://letitbit.net/download/8b8501556149/1.ZIP.html
положите рядом с программой этот файл, выполните код, в этом файле получится готовая картинка
Код для преобразования:
Var X,Y:Integer;
F1,F2:File of word;
w:Word;
b:Byte;
i:Integer;
begin
AssignFile(F1,'Single00.img');
Reset(F1);
AssignFile(F2,'1.tif');
FileMode:=2;
Reset(F2);
Seek(F1,372);
Seek(F2,9419);
X:=1;
Y:=1;
while not eof(F1) do begin
Read(F1,w);
w:=w*8+20000; //+20000 - определяет яркость картинки
Write(F2,w);
end;
CloseFile(F1);
CloseFile(F2);
end;
ANBsoft

ANBsoft (статус: Студент), 8 октября 2008, 20:15 [#43]:

И последний вариант, простой, но не совсем корректный:
Var X,Y:Integer;
FF:File of Word;
w:Word;
b:Byte;
begin
AssignFile(ff,'Single00.img');
Reset(ff);
Seek(ff,744 div 2);
X:=1;
Y:=1;
while not eof(ff) do begin
Read(ff,w);
w:=w shr 3; //Корректное число 5, но при нем все темно, 4 лучше, 3 в этом случае есть искажения, но принцип понятен
if w>255 then w:=255;
b:=w;
Image1.Canvas.Pixels[X,Y]:=RGB(b,b,b);
Inc(X);
if x>=946 then begin
x:=0;
Inc(Y);
end;
end;
CloseFile(ff);
end;
seryoga

seryoga (статус: 1-ый класс), 9 октября 2008, 11:51 [#44]:

http://www.onlinedisk.ru/image/17169/noopen.JPG
seryoga

seryoga (статус: 1-ый класс), 9 октября 2008, 11:52 [#45]:

в каком поле хранятся атрибуты файла типа размер??
ANBsoft

ANBsoft (статус: Студент), 9 октября 2008, 21:05 [#46]:

Помогли последние доработки с качеством файла?
Что это за новый файл, откуда он, что в нем?
Судя по виду, в нем неправильно выбрана ширина картинки.
А вообще для этого JPG лучше не использовать, лучше TIF или на худой конец BMP, а JPG сжатие с потерями.

Страницы: [« Предыдущая] [1] [2] [3]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 23:16
Выполнено за 0.03 сек.