Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.26;
Скачать: CL | DM;

Вниз

как сохранить информацию из jpg о дате,и фото апарате ?   Найти похожие ветки 

 
Evgenij ©   (2002-05-29 14:14) [0]

Загружаю JPG файл в TImage. Преобразую его в bitmap, накладываю текст, потом преобразую назад в JPG и сохраняю в файл. Приэтом теряется информация (из jpg о дате,и фото апарате)Знает ли кто-нибудь как эту информацию можно сохранить?


 
Song ©   (2002-05-29 14:23) [1]

А как обратно преобразуете? Надо не BitMap преобразовывать уже а его Canvas


 
Evgenij ©   (2002-05-29 15:46) [2]

я делаю так

bmp: TBItmap; jpg: TJpegImage;
begin
OpenDialog1.Execute;
jpg:= TJpegImage.Create;
jpg.LoadFromFile( OpenDialog1.FileName );
bmp:= Tbitmap.Create;
bmp.Width := jpg.Width;
bmp.Height:= jpg.Height;
bmp.Canvas.StretchDraw( bmp.Canvas.Cliprect, jpg );
bmp.Canvas.Font.Size := 18;
bmp.Canvas.TextOut(bmp.Width - (bmp.Canvas.Font.Size * 18 div 5),bmp.Height -(bmp.Canvas.Font.Size * 3 div 2),"дата");
{Convert back to JPEG and save to file}
jpg.Assign( bmp );
jpg.Compress;
jpg.CompressionQuality := 100;
jpg.SaveToFile(ChangeFileext( OpenDialog1.FileName, "_Time.JPG" ));
bmp.free;
jpg.free;

а вообще то надо для чего:
фотоапарат делает jpg и в него прописивает все настройки при которых он работал в том числе и дату вот мне и хочется в угол нижний картинки записать дату(правда я незнаю как её извлечь из jpg)


 
Song ©   (2002-05-29 16:52) [3]


procedure TForm1.Button1Click(Sender: TObject);
Const StringOut="String";
Var Mmp: TBItmap;
Jpg:TJpegImage;
begin
Jpg:=TJpegImage.Create;
With Jpg Do
try
LoadFromFile("C:\12.jpg");
Bmp:= TBitMap.Create;
With Bmp Do
Begin
Width:=Jpg.Width;
Height:=Jpg.Height;
Assign(Jpg);
Canvas.Font.Size := 18;
With Canvas Do TextOut((Width div 2)-TextWidth(StringOut),Height-TextHeight(StringOut),StringOut);
End;
Assign(Bmp);
SaveToFile("c:\121.jpg");
finally
Bmp.Free;
Free;
end;
end;


 
Evgenij ©   (2002-05-29 17:22) [4]

всё супер но это не то
после этих действий из jpg удаляется информация и фаил уменьшается минимум на 25% в самом файле есть дата вот хотелось бы научится извлекать её и затем использовать для вставки в фотографию


 
Evgenij ©   (2002-05-29 17:32) [5]

перед тем как сдавать на изготовление фоток


procedure TImageOpen.Button5Click(Sender: TObject);
Var Bmp: TBItmap;
Jpg:TJpegImage;
Img,StringOut:String;
i:Integer;
begin

Button1.Enabled := False;
Button2.Enabled := False;
Button3.Enabled := False;
Button5.Enabled := False;

for i:=0 to ListBox1.Items.Count-1 do
begin
Application.ProcessMessages;
Label1.Caption := "Done "+IntToStr(i+1)+" of "+IntToStr(ListBox1.Items.count);
ListBox1.ItemIndex := i;
Img:= ListBox1.Items[i];
StringOut := copy(Img,(Length(Img)-22),19);(как из картинки извлеч)

Jpg:=TJpegImage.Create;

With Jpg Do
try
LoadFromFile(Img);
Bmp:= TBitMap.Create;
With Bmp Do
Begin
Width:=Jpg.Width;
Height:=Jpg.Height;
Assign(Jpg);
Canvas.Brush.Color := clBlack;
Canvas.Font.Size := 24;
Canvas.Font.Color := clWhite;
With Canvas Do TextOut((Width)-TextWidth(StringOut),Height-TextHeight(StringOut),StringOut);
End;
Assign(Bmp);
SaveToFile(ChangeFileext(Img, "_Time.jpeg" ));
finally
Bmp.Free;
Free;
end;
end;
ListBox1.Items.Clear;
Button1.Enabled := True;
Button2.Enabled := True;
Button3.Enabled := True;
Button5.Enabled := True;
end;


 
Song ©   (2002-05-29 17:40) [6]

Ну и хрен с ним, пускай уменьшается. Раз перемены в качестве нет, зачем? А Вы разве использовали как-то эту информацию в своём отрывке?


 
Evgenij ©   (2002-05-29 17:51) [7]

нет потому что незнаю как достать
я знаю что там есть а как достать не получается :(


 
Song ©   (2002-05-29 17:52) [8]

Наверно дата и время снимка - дата и время создания файла? Или файл создаётся при перемещении снимка с цифровика в комп?


 
Evgenij ©   (2002-05-29 17:55) [9]

да дата и время фотографирования
у меня есть фотки
могу прислать


 
Evgenij ©   (2002-05-29 18:01) [10]

acdsee 4 и выше пономают такие jpg


 
Song ©   (2002-05-29 23:58) [11]

Тогда бери дату и время создания файла и выводи их на его Canvas.


 
Evgeny ©   (2002-05-30 07:24) [12]

У JPEG формата имеются специальные маркеры, определяющие различные параметры. В частности маркер $FF $FE определяет, что далее идет комментарий. А вот группа маркеров $FF $F0...$FF $FD зарезервированы для расширения формата. Возможно в них и содержится нужная информация. Для уточнения нужно видеть "живые" файлы.


 
Evgenij ©   (2002-05-30 09:44) [13]

спасибо у меня есть такие. как и что делать?


 
Игорь Шевченко ©   (2002-05-30 12:58) [14]

procedure TForm1.FormCreate(Sender: TObject);
var
Data : array[0..255] of char;
fd : Integer;
DateString : String;
begin
fd := FileOpen("101-0171_IMG.JPG", fmOpenRead);
if fd <> -1 then begin
FileRead(fd, Data, 255);
DateString := StrPas(@Data[188]);
ShowMessage("Date is "+DateString);
end;
end;

С уважением,



Страницы: 1 вся ветка

Текущий архив: 2002.09.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
1-85527
Jony
2002-09-12 18:35
2002.09.26
Форматирование ячеек Excell


6-85629
Rammst
2002-07-25 17:43
2002.09.26
Mail


4-85779
DarkSimpson
2002-08-07 17:43
2002.09.26
Замена стандартной панели задач и system-tray ю


6-85633
John Kayfolom
2002-07-25 17:22
2002.09.26
Получение HTTP страницы через прокси


3-85341
Spooky
2002-09-04 12:03
2002.09.26
Удаление записи, указанной в наборе пользователем, с помощью SQL