Hello, and thanks for the great app.
I am having an issue that with Open Camera set to save picbures in the SD card, when I take a portrait picture at a "high" resolution and then view it in the gallery, it appears rotated 90 degrees anticlockwise. If on the other hand I open the picture from the file manager then it appears fine. If I restart my phone then it also appears fine in the gallery. The issue disappears when saving pictures on internal memory or when using the stock camera (whether saving to internal memory or SD card). This is on a Samsung A5 (2016) with Lineage OS 17.1 (Android 10).
If I take a portrait picture with the phone upside down then it appears rotated 90 degrees clockwise. Landscape pictures with the phone's home button on the right hand side appear fine whereas landscape pictures with the home button on the left appear upside down. I am not sure if it is relevant but when Open Camera asks for pernissions the text is oriented to be read in landscape with home button right.
I am experiencing this issue at the phone's highest resolutions:
4128x3096 (12.78MP)
4128x2322 (9.59MP)
3088x3088 (9.54MP)
3264x2448 (7.99MP)
3264x1836 (5.99MP)
but not at resolutions 2160x2160 (4.67MP) and below. And only with the rear camera, not with the front one whose maximal resolution is 2576x1932 (4.98MP).
This is with JPEG image format and 90% image quality. A file size at resolution 3264x1836 (5.99MP) was 694kB whereas a file size at resolution 2160x2160 (4.67MP) was 573kB. Setting image quality to 40% did not change anything even though file size at resolution 3264x1836 (5.99MP) went down to 211kB. Setting image format to PNG made the problem disappear at all resolutions, although at 4128x3096 (12.78MP) this resulted in a huge file (13.2MB) which took time to load in the gallery.
Any help with this would be much appreciated, and please le me know if can provide more information or testing.
Thanks in advance,
Eric
Anonymous
Hello again, looking at other tickets I realize it might useful to paste the output of Settings > About:
Open Camera v1.48.1
Code: 77
Package: net.sourceforge.opencamera
Android API version: 29
Device manufacturer: samsung
Device model: SM-A510F
Device code-name: samsungexynos7580
Device variant: a5xeltexx
Language: en
Standard max heap?: 128
Large max heap?: 512
Display size: 1080x1920
Display metrics: 1080x1920
Current camera ID: 0
No. of cameras: 2
Multi-camera?: false
Camera API: Camera
Photo mode: Standard
Preview resolutions: 1920x1080, 1440x1080, 1072x1072, 1280x720, 1056x704, 960x720, 880x720, 720x720, 720x480, 640x480, 352x288, 320x240, 176x144
Preview resolution: 1440x1080
Photo resolutions: 4128x3096, 4128x2322, 3088x3088, 3264x2448, 3264x1836, 2160x2160, 2048x1536, 2048x1152, 1920x1080, 1440x1080, 1280x720, 960x720, 640x480, 320x240
Photo resolution: 4128x3096
Video qualities: 1, 5_r1440x1080, 5_r1072x1072, 5, 4_r960x720, 4_r800x450, 4_r720x480, 4, 7_r480x320, 7_r352x288, 7, 0_r176x144
Video resolutions: 1920x1080, 1440x1080, 1072x1072, 1280x720, 960x720, 800x450, 720x480, 640x480, 480x320, 352x288, 320x240, 176x144
Video quality: 1
Video frame width: 1920
Video frame height: 1080
Video bit rate: 17000000
Video frame rate: 30
Video capture rate: 30.0
Video high speed: false
Video capture rate factor: 1.0
Auto-level?: Available
Auto-level enabled?: false
Face detection?: Available
RAW?: Not available
HDR?: Available
Panorama?: Not available
Gyro sensors?: Not available
Expo?: Available
Expo compensation?: Available
Exposure compensation range: -20 to 20
Manual ISO?: Not available
Manual exposure?: Not available
Manual WB?: Not available
Optical stabilization?: Not available
Optical stabilization enabled?: false
Video stabilization?: Not available
Video stabilization enabled?: false
Tonemap curve?: Not available
Tonemap max curve points: 0
Can disable shutter sound?: Available
Camera view angle: 53.996567 , 39.4
Flash modes: flash_off, flash_auto, flash_on, flash_torch
Focus modes: focus_mode_auto, focus_mode_macro, focus_mode_locked, focus_mode_continuous_picture, focus_mode_continuous_video
Color effects: None
Scene modes: auto, action, portrait, landscape, night, night-portrait, theatre, beach, snow, sunset, steadyphoto, fireworks, sports, party, candlelight
White balances: auto, incandescent, fluorescent, daylight, cloudy-daylight
ISOs: auto, 100, 200, 400, 800
ISO key: iso
Magnetic accuracy?: -1
Using SAF?: true
Save Location: OpenCamera
Save Location SAF: content://com.android.externalstorage.documents/tree/F8B1-6A99%3ADCIM%2FCamera
Parameters: 3dnr=false;Infinity=Infinity;antibanding=auto;antibanding-values=auto,50hz;auto-exposure-lock-supported=true;auto-whitebalance-lock-supported=true;best-capture=0;brightness=0;brightness-max=2;brightness-min=-2;burst-capture=0;burstshot-fps-values=(5,5);constant-growth-rate-zoom-supported=true;contrast=auto;drc=false;dual_mode=-1;dualrecording-hint=-1;dynamic-range-control=off;effect=none;effect-available-fps-values=(0,0);effect-values=none;effectrecording-hint=0;exposure-compensation=0;exposure-compensation-step=0.1;fast-fps-mode=-1;flash-mode=auto;flash-mode-values=off,auto,on,torch;fnumber-value-denominator=10;fnumber-value-numerator=19;focal-length=3.70;focallength-35mm-value=28;focallength-value-denominator=100;focallength-value-numerator=370;focus-areas=(0,0,0,0,0);focus-distance=-1;focus-distances=0.10,1.20,Infinity;focus-mode=continuous-picture;focus-mode-values=auto,macro,continuous-video,continuous-picture;hdr-mode=0;horizontal-view-angle=62.2;hue=0;hue-max=2;hue-min=-2;imageuniqueid-value=U13LLIA00PM U13LLKI01SA
;intelligent-mode=-1;iso=auto;iso-values=auto,100,200,400,800;jpeg-quality=90;jpeg-thumbnail-height=384;jpeg-thumbnail-quality=100;jpeg-thumbnail-size-values=512x384,512x288,384x384,320x240,0x0;jpeg-thumbnail-width=512;max-exposure-compensation=20;max-num-detected-faces-hw=16;max-num-detected-faces-sw=0;max-num-focus-areas=1;max-num-metering-areas=0;max-zoom=30;maxaperture-value-denominator=100;maxaperture-value-numerator=227;metering=center;metering-areas=;metering-values=matrix,center,spot;min-exposure-compensation=-20;odc=false;ois=still;ois-supported=true;phase-af=off;phase-af-values=off;picture-format=jpeg;picture-format-values=jpeg;picture-size=4128x3096;picture-size-values=4128x3096,4128x2322,3264x2448,3264x1836,3088x3088,2160x2160,2048x1536,2048x1152,1920x1080,1440x1080,1280x720,960x720,640x480,320x240;preferred-preview-size-for-video=1920x1080;preview-format=yuv420sp;preview-format-values=yuv420sp,yuv420p;preview-fps-range=15000,30000;preview-fps-range-values=(15000,15000),(24000,24000),(15000,30000),(30000,30000);preview-frame-rate=30;preview-frame-rate-values=15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30;preview-size=1440x1080;preview-size-values=1920x1080,1440x1080,1072x1072,1280x720,1056x704,960x720,880x720,720x720,720x480,640x480,352x288,320x240,176x144;recording-hint=false;rotation=0;rt-hdr=off;rt-hdr-values=off;saturation=0;saturation-max=2;saturation-min=-2;scene-mode=auto;scene-mode-values=auto,action,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight;sharpness=0;sharpness-max=2;sharpness-min=-2;smooth-zoom-supported=false;vertical-view-angle=39.4;video-frame-format=nv21;video-size=1920x1080;video-size-values=1920x1080,1440x1080,1072x1072,1280x720,960x720,800x450,720x480,640x480,480x320,352x288,320x240,176x144;video-snapshot-supported=true;video-stabilization-supported=false;vrmode=-1;vrmode-supported=true;wb-level=-1;wdr=0;whitebalance=auto;whitebalance-values=auto,incandescent,fluorescent,daylight,cloudy-daylight;zoom=0;zoom-ratios=100,104,109,114,120,125,131,138,144,151,158,166,174,182,190,200,209,219,229,240,251,263,276,289,303,317,332,348,364,381,400;zoom-supported=true
I can completely confirm this behaviour with recent OpenCamera 1.48.2 on a Galaxy S4 with LineageOS 17.1 (Android 10. without any Google Services).
I wonder why I can find more than 10 unsolved Tickets here if I search for "SD" in which all are discribing more ore less the same problem?
Trying to save directly to the external SD Card (formatted within LineageOS as "mobile" and using Storage Framework with granted access after prompting in OpenCamare settings) exactly same thing happens than described above
But:
Is there any deeper Android (or only LineageOS 17.1?) decission the problem and how this could be adressed?
In general: not beeing able to use OpenCamera on an external SD-Card on Android 10 (or Lineage 17.1) is a really show stopper ... has anybode an explanation?
Open Camera v1.48.2
Code: 78
Package: net.sourceforge.opencamera
Android API version: 29
Device manufacturer: Samsung
Device model: GT-I9505
Device code-name: qcom
Device variant: jflte
Language: de
Standard max heap?: 192
Large max heap?: 512
Display size: 1920x1080
Display metrics: 1920x1080
Current camera ID: 0
No. of cameras: 2
Multi-camera?: false
Camera API: Camera
Photo mode: Standard
Preview resolutions: 1920x1080, 1440x1080, 1280x720, 1056x864, 960x720, 720x480, 640x480, 320x240, 176x144
Preview resolution: 1440x1080
Photo resolutions: 4128x3096, 4128x2322, 3264x2448, 3264x1836, 2048x1536, 2048x1152, 1280x720, 640x480
Photo resolution: 4128x3096
Video qualities: 1, 5_r1440x1080, 5, 4_r800x450, 4, 2_r640x480, 2_r320x240, 2
Video resolutions: 1920x1080, 1440x1080, 1280x720, 800x450, 720x480, 640x480, 320x240, 176x144
Video quality: 1
Video frame width: 1920
Video frame height: 1080
Video bit rate: 20000000
Video frame rate: 30
Video capture rate: 30.0
Video high speed: false
Video capture rate factor: 1.0
Auto-level?: verfügbar
Auto-level enabled?: false
Face detection?: verfügbar
RAW?: nicht verfügbar
HDR?: verfügbar
Panorama?: verfügbar
Gyro sensors?: verfügbar
Expo?: verfügbar
Expo compensation?: verfügbar
Exposure compensation range: -4 to 4
Manual ISO?: nicht verfügbar
Manual exposure?: nicht verfügbar
Manual WB?: nicht verfügbar
Optical stabilization?: nicht verfügbar
Optical stabilization enabled?: false
Video stabilization?: nicht verfügbar
Video stabilization enabled?: false
Tonemap curve?: nicht verfügbar
Tonemap max curve points: 0
Can disable shutter sound?: verfügbar
Camera view angle: 56.6 , 42.60033
Flash modes: flash_off, flash_auto, flash_on, flash_torch
Focus modes: focus_mode_auto, focus_mode_infinity, focus_mode_macro, focus_mode_locked, focus_mode_continuous_picture, focus_mode_continuous_video
Color effects: none, mono, negative, solarize, sepia, posterize, aqua, emboss, sketch, neon, vintage-warm, vintage-cold, washed
Scene modes: auto, asd, action, portrait, landscape, night, night-portrait, theatre, beach, snow, sunset, steadyphoto, fireworks, sports, party, candlelight, backlight, flowers, AR
White balances: auto, incandescent, fluorescent, daylight, cloudy-daylight
ISOs: auto, ISO100, ISO200, ISO400, ISO800
ISO key: iso
Magnetic accuracy?: -1
Using SAF?: true
Save Location: OpenCamera
Save Location SAF: content://com.android.externalstorage.documents/tree/96F5-E53B%3AOpenCamera
Parameters: ae-bracket-hdr=Off;ae-bracket-hdr-values=Off,HDR,AE-Bracket;anti-shake=0;antibanding=auto;antibanding-values=off,50hz,60hz,auto;auto-exposure-lock=false;auto-exposure-lock-supported=true;auto-whitebalance-lock=false;auto-whitebalance-lock-supported=true;cam_mode=0;camera-mode=1;camera-mode-values=0,1;capture-burst-captures-values=2;capture-burst-exposures=;capture-burst-exposures-values=-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12;capture-burst-interval=1;capture-burst-interval-max=10;capture-burst-interval-min=1;capture-burst-interval-supported=true;capture-burst-retroactive=0;capture-burst-retroactive-max=2;contextualtag-cityid=0;contrast=5;denoise=denoise-off;denoise-values=denoise-off,denoise-on;display_mode=landscape;dual_mode=0;dualrecording-hint=-1;effect=none;effect-values=none,mono,negative,solarize,sepia,posterize,aqua,emboss,sketch,neon,vintage-warm,vintage-cold,washed;exposure-compensation=0;exposure-compensation-step=0.5;face_position=(-1,-1);fast-fps-mode=0;flash-mode=auto;flash-mode-values=off,auto,on,torch;focal-length=4.2;focus-areas=(0,0,0,0,0);focus-distances=0.10,1.20,Infinity;focus-mode=continuous-picture;focus-mode-values=auto,infinity,macro,continuous-picture,continuous-video;hfr-size-values=800x480,640x480;histogram=disable;histogram-values=enable,disable;horizontal-view-angle=56.6;intelligent-mode=0;iso=auto;iso-values=auto,ISO100,ISO200,ISO400,ISO800;jpeg-quality=90;jpeg-thumbnail-height=144;jpeg-thumbnail-quality=90;jpeg-thumbnail-size-values=512x288,480x288,432x288,512x384,352x288,320x240,176x144,0x0;jpeg-thumbnail-width=176;lensshade=enable;lensshade-values=enable,disable;luma-adaptation=1;max-contrast=10;max-exposure-compensation=4;max-num-detected-faces-hw=10;max-num-focus-areas=1;max-num-metering-areas=0;max-saturation=10;max-sharpness=30;max-zoom=30;mce=enable;mce-values=enable,disable;metering=center;metering-areas=(0,0,0,0,0);min-exposure-compensation=-4;no-display-mode=0;num-snaps-per-shutter=1;overlay-format=265;picture-format=jpeg;picture-format-values=jpeg,raw;picture-size=4128x3096;picture-size-values=4128x3096,4128x2322,3264x2448,3264x1836,2048x1536,2048x1152,1280x720,640x480;power-mode=Normal_Power;power-mode-supported=true;preferred-preview-size-for-video=1280x720;preview-format=yuv420sp;preview-format-values=yuv420sp,yuv420sp-adreno,yuv420p,nv12;preview-fps-range=4000,30000;preview-fps-range-values=(4000,30000);preview-frame-rate=30;preview-frame-rate-values=15,30;preview-size=1440x1080;preview-size-values=1920x1080,1440x1080,1280x720,1056x864,960x720,720x480,640x480,320x240,176x144;qc-camera-features=1;qc-max-num-requested-faces=2;recording-hint=false;redeye-reduction=disable;redeye-reduction-values=enable,disable;saturation=5;scene-detect=off;scene-detect-values=off,on;scene-mode=auto;scene-mode-values=auto,asd,action,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,backlight,flowers,AR;selectable-zone-af=auto;selectable-zone-af-values=auto,spot-metering,center-weighted,frame-average;sharpness=10;shot-mode=0;single-isp-output-enabled=false;skinToneEnhancement=0;skinToneEnhancement-values=enable,disable;smart-screen-exposure=1;strtextures=OFF;sw-vdis=off;touch-af-aec=touch-off;touch-af-aec-values=touch-off,touch-on;touchAfAec-dx=100;touchAfAec-dy=100;vertical-view-angle=44.1;video-frame-format=yuv420sp;video-hfr=off;video-hfr-values=off;video-size=1920x1080;video-size-values=1920x1080,1440x1080,1280x720,800x450,720x480,640x480,320x240,176x144;video-snapshot-supported=false;video-stabilization=false;video-stabilization-ocr=false;video-zoom-support=true;whitebalance=auto;whitebalance-values=auto,incandescent,fluorescent,daylight,cloudy-daylight;zoom=0;zoom-ratios=100,102,104,107,109,112,114,117,120,123,125,128,131,135,138,141,144,148,151,155,158,162,166,170,174,178,182,186,190,195,200;zoom-supported=true;zsl=off;zsl-values=off,on
Edit of previous post:
I did report the same issue in parallel here: #706, #525, #246, #236, #212
Hello !
One of my friend is having a similar issue, also on a Samsung Galaxy A5 running LineageOS-based /e/ OS (https://e.foundation/).
When taking a picture in portrait mode and saving it to the SD card (in "removable mode", not "integrated mode"), the picture appears to be saved with a 90° rotation metadata (counter-clockwise, IIRC), that gallery apps such as Simple Gallery honor an then display the image rotated.
I can't tell if it happens when saving to the internal storage, nor in landscape mode, nor at lower resolution, though I could ask my friend to give it a try.
Debug info :
I'm the author of that post.
Some more info :
Last edit: breversa 2021-07-23