Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Вниз

как сохранить информацию из 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 вся ветка

Форум: "Media";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
14-85688
zzet
2002-08-29 19:34
2002.09.26
Как это сделано? На чем? Кто знает?


1-85486
sachem
2002-09-16 18:51
2002.09.26
как сделать, что бы событие формы KeyPress действовало везде


3-85332
Шурик Ш
2002-09-04 13:50
2002.09.26
Редактирование полей DBGrid


3-85410
Ag2002
2002-09-03 13:57
2002.09.26
Файл


1-85525
Ина
2002-09-13 11:38
2002.09.26
шрифт Terminal, dbf (foxpro)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский