Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Exif-Rotation
#11
FMX hali de çok farklı değil. Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Type tFotoEXIF = Record
 aWidth, aHeight : Integer;
 aFotoYonuKodu   : Integer;
End;

function FotoBilgileri( Foto: TImage; FotoFileName:String ): tFotoEXIF;
Var
 aFS   : TFileStream;
 aByte : Byte;
begin
 Foto.Bitmap.LoadFromFile( FotoFileName );
 Result.aWidth        := Foto.Bitmap.Width;
 Result.aHeight       := Foto.Bitmap.Height;
 aFS := TFileStream.Create( FotoFileName, fmOpenRead or fmShareDenyNone );
   // 36hex offset'de
   aFS.Seek( StrToInt('$36'), soBeginning );
   aFS.ReadBuffer( aByte, SizeOf(Byte));
 aFS.Free;
 Result.aFotoYonuKodu := Integer(aByte);
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
 aFotoBilgi : tFotoEXIF;
begin
 if ListBox1.ItemIndex = -1 then exit;

 aFotoBilgi := FotoBilgileri( Image1, '.\Foto(s)\' + ListBox1.Items[ListBox1.ItemIndex] );

 Memo1.Lines.Add( StringOfChar( '-', 80 ) );
 Memo1.Lines.Add( Format(' Çözünürlük : %d x %d', [ aFotoBilgi.aWidth, aFotoBilgi.aHeight ]) );
 case aFotoBilgi.aFotoYonuKodu of
 01: Memo1.Lines.Add('Yatay - Telefon Düzgün');
 06: Memo1.Lines.Add('Dikey - Telefon Düzgün');
 03: Memo1.Lines.Add('Yatay - Telefon Ters');
 08: Memo1.Lines.Add('Dikey - Telefon Ters');
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Memo1.WordWrap      := False;
 Memo1.ShowScrollBars:= True;
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#12
Çok teşekkürler....
Cevapla
#13
Peki bir şey daha sorsam.
Ben bu yöntemi mobil programlamada kullanmak istiyorum.

procedure TfMain.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);

begin


end;

Galeriden bir resim seçtiğimde, bu procedure içinde sizin yöntemi nasıl kullanabilirim?

Ya da şöyle sorayım. Bu fonksiyondaki "Image" nesnesinin dosya yolunu nasıl öğrenebilirim? Galiba bunu bilirsem sizin örneği kullanabilirim.
Cevapla
#14
bkz Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
  • The Android implementation of FMX.Platform sends messages of this type when it receives a system notification about the user having taken a photo as a result of a call to IFMXCameraService.TakePhoto or IFMXTakenImageService.TakeImageFromLibrary, or executing an action to take a photo in your application.These messages contain a string with the path to the taken picture.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#15
Teşekkürler... IOS desteklemiyormuş maalesef.
Cevapla
#16
Dosya FileStream olarak path ile erişime aslında gerek yok. 

MemoryStream'e alın oradan yürüyün. Nasıl olsa fotoğraf elinizde ya o bakımdan.

Kendinizi verdiğimiz cevaplar ile kısıtlamayın lütfen. Cevaplar sadece ufuk açmak için. Hazır lokma değil.

Bakın verdiğim kodda exif bilgisi var mı yokmu sorgusunu da size bıraktım.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#17
Teşekkürler, bazı konularda maalesef çok fazla alternatif bulunmuyor. O yüzden dar bir alanda düşünmek zorunda kalıyorum.
Bir de çok basit şeyler bazı yazılımlarda çok zor oluyor. Delphi için günlerce uğraştığım şeyleri başka bir ide ile beş dakikada halledebiliyorum.
Örneğin bu uğraştığım konu. 
Mobil bir uygulamada albümden bir resim seçiyorum ve bu resmin yolunu öğrenmek istiyorum doğal olarak. Tek satır bir kodla bunu bana vermesi gerekir. Ama vermiyor.
Eski alışkanlıklardan dolayı bırakamıyorum da Delphi yi...
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi