Форум: "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