Jump to content

Проект CameraPhotoDemo повёрнутые фото


Alex Shi

Recommended Posts

Добрый день. В проекте CameraPhotoDemo на Mi9 (Android 10) фото сделанные на основную камеру получаются повёрнутые на -90 градусов, а на фронтальную +90 градусов.

Make: Xiaomi
Model: MI 9
Resolution: 2009x1080
Density: 440dpi (unknown)
Release: 10
API: 29

Link to comment
Share on other sites

  • Administrators

Проверил:

  1. Фотографии снятые на заднюю камеру поворачиваются корректно.
  2. Фотографии снятые на фронтальную камеру неправильно поворачиваются.

Исправлением займусь, когда буду доделывать сканер баркодов, заодно исправлю все текущие ошибки с камерой.

Link to comment
Share on other sites

  • 1 month later...
  • Administrators

Данная проблема не была решена в релизе 1.1.3.0

Такое поведение характерно лишь для малой части аппаратов.

Вам, к сожалению, не повезло.

Мы работаем над этим. Ожидайте следующих релизов.

Link to comment
Share on other sites

Здравствуйте

Решается, в большинстве случаев следующим методом

uses AndroidApi.Jni,Java.Bridge,Java.Bridge.Helpers,FGX.Canvas.Android,Android.Api.Javatypes,Android.Api.ActivityAndView, Android.Api.Exif;
function RotateBitmap(B:TfgBitmap;Sz:Integer):TfgBitmap;
var M:TJMatrix;
    BA,BA1:TJBitmap;
begin
BA:=TfgAndroidBitmapHandle(B.Handle).NativeBitmap;
M:=TJMatrix.Create;
m.postRotate(Sz);
BA1:=TJBitmap.createBitmap(BA,0,0,BA.getWidth,BA.getHeight,m,true);
Result:=TfgBitmap.CreateFromNativeBitmap(BA1);
end;
function PrepareBitmapFromFile(FileName:String):TfgBitmap;
var E:TJExifInterface;
    Orientation:Integer;
begin
  E:=TJExifInterface.Create(FileName);
  Orientation:=E.getAttributeInt(TJExifInterface.TAG_ORIENTATION,TJExifInterface.ORIENTATION_UNDEFINED);
  Result:=TfgBitmap.CreateFromFile(FileName);
  if Orientation=TJExifInterface.ORIENTATION_ROTATE_180
  then
   Result:=RotateBitmap(Result,180)
  else
  if Orientation=TJExifInterface.ORIENTATION_ROTATE_90
  then
   Result:=RotateBitmap(Result,90)
  else
  if Orientation=TJExifInterface.ORIENTATION_ROTATE_270
  then
   Result:=RotateBitmap(Result,270);


end;

Извините за небрежность кода

Android.Api.Exif.pas

Edited by Stas
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...