diff --git a/app/src/main/assets/shaders/addwatermark_rotate.glsl b/app/src/main/assets/shaders/addwatermark_rotate.glsl index 39b03778f..77c181d1b 100644 --- a/app/src/main/assets/shaders/addwatermark_rotate.glsl +++ b/app/src/main/assets/shaders/addwatermark_rotate.glsl @@ -4,6 +4,8 @@ uniform sampler2D InputBuffer; uniform sampler2D Watermark; uniform int yOffset; uniform int rotate; +uniform ivec2 cropSize; +uniform ivec2 rawSize; out vec4 Output; #define WATERMARK 1 #define watersizek (15.0) @@ -19,18 +21,22 @@ void main() { xy+=ivec2(0,yOffset)+ivec2(OFFSET); switch(rotate){ case 0: + xy += ivec2(0,(rawSize.y-cropSize.y)); cr = (vec2(xy+ivec2(0,-texSize.y))/(texS)); - Output = texelFetch(InputBuffer, (xy), 0); + Output = texelFetch(InputBuffer, xy, 0); break; case 1: - cr = (vec2(xy+ivec2(0,-texSize.x))/(texS)); + xy += ivec2((rawSize.y-cropSize.y),0); + cr = (vec2(xy+ivec2(-(rawSize.y-cropSize.y),-cropSize.x))/(texS)); Output = texelFetch(InputBuffer, ivec2(texSize.x-xy.y,xy.x), 0); break; case 2: - cr = (vec2(xy+ivec2(0,-texSize.y))/(texS)); + //xy += ivec2(0,-(texSize.y-rotatedSize.y)/4); + cr = (vec2(xy+ivec2(0,-cropSize.y))/(texS)); Output = texelFetch(InputBuffer, ivec2(texSize.x-xy.x,texSize.y-xy.y), 0); break; case 3: + //xy += ivec2(-(texSize.x-rotatedSize.x)/4,0); cr = (vec2(xy+ivec2(0,-texSize.x))/(texS)); Output = texelFetch(InputBuffer, ivec2(xy.y,texSize.y-xy.x),0); break; diff --git a/app/src/main/java/com/particlesdevs/photoncamera/api/Settings.java b/app/src/main/java/com/particlesdevs/photoncamera/api/Settings.java index a748f568b..9b0547ed5 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/api/Settings.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/api/Settings.java @@ -30,7 +30,7 @@ public class Settings { public double compressor; public double gain; public double shadows; - public boolean rawSaver; + public int rawSaver; public boolean QuadBayer; public int cfaPattern; public int theme; @@ -73,7 +73,7 @@ public void loadCache() { shadows = PreferenceKeys.getFloat(PreferenceKeys.Key.KEY_SHADOWS_SEEKBAR); hdrx = PreferenceKeys.isHdrxNrOn(); cfaPattern = PreferenceKeys.getCFAValue(); - rawSaver = PreferenceKeys.isSaveRawOn(); + rawSaver = PreferenceKeys.isSaveRaw(); remosaic = PreferenceKeys.isRemosaicOn(); eisPhoto = PreferenceKeys.isEisPhotoOn(); QuadBayer = PreferenceKeys.isQuadBayerOn(); diff --git a/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/PostPipeline.java b/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/PostPipeline.java index 93c3948e1..a667b9241 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/PostPipeline.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/PostPipeline.java @@ -29,6 +29,7 @@ public class PostPipeline extends GLBasePipeline { public GLTexture GainMap; public ArrayList debugData = new ArrayList<>(); public ArrayList SAGAIN; + public Point cropSize; public float[] analyzedBL = new float[]{0.f, 0.f, 0.f}; ; float regenerationSense = 1.f; @@ -85,23 +86,25 @@ public Bitmap Run(ByteBuffer inBuffer, Parameters parameters) { noiseO = Math.max(noiseO, Float.MIN_NORMAL); noiseS = Math.max(noiseS, Float.MIN_NORMAL); Point rawSliced = parameters.rawSize; + cropSize = new Point(parameters.rawSize); if (PhotonCamera.getSettings().aspect169) { if (rawSliced.x > rawSliced.y) { rawSliced = new Point(rawSliced.x, rawSliced.x * 9 / 16); } else { rawSliced = new Point(rawSliced.y * 9 / 16, rawSliced.y); } + cropSize = new Point(rawSliced); } - Point rotated = getRotatedCoords(rawSliced); + Point rotatedSize = getRotatedCoords(rawSliced); if (PhotonCamera.getSettings().energySaving || mParameters.rawSize.x * mParameters.rawSize.y < ResolutionSolution.smallRes) { GLDrawParams.TileSize = 8; } else { GLDrawParams.TileSize = 256; } GLFormat format = new GLFormat(GLFormat.DataType.SIMPLE_8, 4); - GLImage output = new GLImage(rotated, format); + GLImage output = new GLImage(rotatedSize, format); - GLCoreBlockProcessing glproc = new GLCoreBlockProcessing(rotated, output, format); + GLCoreBlockProcessing glproc = new GLCoreBlockProcessing(rotatedSize, output, format); glint = new GLInterface(glproc); stackFrame = inBuffer; glint.parameters = parameters; @@ -132,7 +135,7 @@ private void BuildDefaultPipeline() { //add(new ESD3DBayerCS()); //} if(mSettings.alignAlgorithm != 2) { - add(new Demosaic2()); + add(new Demosaic3()); } //add(new ImpulsePixelFilter()); diff --git a/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/RotateWatermark.java b/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/RotateWatermark.java index fda9a0f98..c1559bb7b 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/RotateWatermark.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/processing/opengl/postpipeline/RotateWatermark.java @@ -1,20 +1,13 @@ package com.particlesdevs.photoncamera.processing.opengl.postpipeline; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Point; -import android.opengl.GLUtils; import android.util.Log; -import com.particlesdevs.photoncamera.R; import com.particlesdevs.photoncamera.app.PhotonCamera; import com.particlesdevs.photoncamera.processing.opengl.GLImage; import com.particlesdevs.photoncamera.processing.opengl.GLTexture; import com.particlesdevs.photoncamera.processing.opengl.nodes.Node; import com.particlesdevs.photoncamera.settings.PreferenceKeys; -import com.particlesdevs.photoncamera.util.FileManager; -import java.io.File; import java.io.IOException; import static android.opengl.GLES20.GL_CLAMP_TO_EDGE; @@ -42,6 +35,7 @@ public void Run() { //else lutbm = BitmapFactory.decodeResource(PhotonCamera.getResourcesStatic(), R.drawable.neutral_lut); glProg.setDefine("WATERMARK",watermarkNeeded); + glProg.useAssetProgram("addwatermark_rotate"); try { watermark = new GLImage(PhotonCamera.getAssetLoader().getInputStream("watermark/photoncamera_watermark.png")); @@ -73,5 +67,10 @@ public void Run() { } Log.d(Name,"selected rotation:"+rot); glProg.setVar("rotate",rot); + glProg.setVar("cropSize",((PostPipeline)basePipeline).cropSize); + glProg.setVar("rawSize",basePipeline.mParameters.rawSize); + Log.d(Name,"Crop size:"+((PostPipeline)basePipeline).cropSize); + Log.d(Name,"Raw size:"+basePipeline.mParameters.rawSize); + } } diff --git a/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/HdrxProcessor.java b/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/HdrxProcessor.java index 5b2fca248..d27cd4cd9 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/HdrxProcessor.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/HdrxProcessor.java @@ -36,7 +36,7 @@ public class HdrxProcessor extends ProcessorBase { private int imageFormat; /* config */ private int alignAlgorithm; - private boolean saveRAW; + private int saveRAW; private CameraMode cameraMode; private ArrayList BurstShakiness; @@ -45,7 +45,7 @@ public HdrxProcessor(ProcessingEventsListener processingEventsListener) { super(processingEventsListener); } - public void configure(int alignAlgorithm, boolean saveRAW, CameraMode cameraMode) { + public void configure(int alignAlgorithm, int saveRAW, CameraMode cameraMode) { this.alignAlgorithm = alignAlgorithm; this.saveRAW = saveRAW; this.cameraMode = cameraMode; @@ -255,14 +255,8 @@ private void ApplyHdrX() { Wrapper.outputBuffer(output); Wrapper.processFrame(NoiseS, NoiseO, 1.5f, 1, 0.f, 0.f, 0.f, processingParameters.whiteLevel , processingParameters.whitePoint[0], processingParameters.whitePoint[1], processingParameters.whitePoint[2], processingParameters.cfaPattern); - if (saveRAW){ - for (int i = 1; i < images.size(); i++) { - images.get(i).image.close(); - } - } else { - for (int i = 1; i < images.size(); i++) { - images.get(i).image.close(); - } + for (int i = 1; i < images.size(); i++) { + images.get(i).image.close(); } } else { WrapperGPU.loadInterpolatedGainMap(interpolateGainMap.Output); @@ -272,14 +266,8 @@ private void ApplyHdrX() { Log.d(TAG, "Packing"); WrapperGPU.packImages(); Log.d(TAG, "Packed"); - if (saveRAW){ - for (int i = 1; i < images.size(); i++) { - images.get(i).image.close(); - } - } else { - for (int i = 1; i < images.size(); i++) { - images.get(i).image.close(); - } + for (int i = 1; i < images.size(); i++) { + images.get(i).image.close(); } if(alignAlgorithm == 1) { float bl = processingParameters.blackLevel[0]+processingParameters.blackLevel[1]+processingParameters.blackLevel[2]+processingParameters.blackLevel[3]; @@ -305,7 +293,7 @@ private void ApplyHdrX() { } else { result = output; } - if (saveRAW && alignAlgorithm != 2) { + if ((saveRAW >= 1) && alignAlgorithm != 2) { int patchWL = (int) FAKE_WL; Camera2ApiAutoFix.patchWL(characteristics, captureResult, patchWL); @@ -326,6 +314,12 @@ private void ApplyHdrX() { parameters.blackLevel[1] -= bl; parameters.blackLevel[2] -= bl; parameters.blackLevel[3] = 0.f;*/ + if (saveRAW == 2) { + processingEventsListener.onProcessingFinished("HdrX RAW Processing Finished"); + callback.onFinished(); + images.get(0).image.close(); + return; + } } /*else { if(alignAlgorithm == 0) { diff --git a/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/UnlimitedProcessor.java b/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/UnlimitedProcessor.java index cef04efa7..f11d514d1 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/UnlimitedProcessor.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/processing/processor/UnlimitedProcessor.java @@ -31,13 +31,13 @@ public class UnlimitedProcessor extends ProcessorBase { private boolean fillParams = false; /* config */ - private boolean saveRAW; + private int saveRAW; public UnlimitedProcessor(ProcessingEventsListener processingEventsListener) { super(processingEventsListener); } - public void configure(boolean saveRAW) { + public void configure(int saveRAW) { this.saveRAW = saveRAW; } @@ -111,7 +111,7 @@ private void processUnlimited(Image image) { image.getPlanes()[0].getBuffer().position(0); averageRaw.close(); averageRaw = null; - if (saveRAW) { + if (saveRAW >= 1) { processingEventsListener.onProcessingFinished("Unlimited rawSaver Processing Finished"); @@ -123,8 +123,11 @@ private void processUnlimited(Image image) { Camera2ApiAutoFix.resetWL(characteristics, captureResult, (int) FAKE_WL); processingEventsListener.notifyImageSavedStatus(imageSaved, dngFile); - - return; + if (saveRAW == 2) { + processingEventsListener.onProcessingFinished("Unlimited RAW Processing Finished"); + callback.onFinished(); + return; + } } IncreaseWLBL(); diff --git a/app/src/main/java/com/particlesdevs/photoncamera/settings/PreferenceKeys.java b/app/src/main/java/com/particlesdevs/photoncamera/settings/PreferenceKeys.java index 4fff645ae..08f8162ce 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/settings/PreferenceKeys.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/settings/PreferenceKeys.java @@ -3,7 +3,6 @@ import android.app.Activity; import android.content.Context; import android.content.res.Resources; -import android.hardware.camera2.CameraManager; import android.util.Log; import androidx.annotation.StringRes; @@ -12,7 +11,6 @@ import com.google.gson.GsonBuilder; import com.hunter.library.debug.HunterDebug; import com.particlesdevs.photoncamera.R; -import com.particlesdevs.photoncamera.api.CameraManager2; import com.particlesdevs.photoncamera.app.PhotonCamera; import java.util.Arrays; @@ -21,8 +19,6 @@ import java.util.Map; import java.util.Set; -import static android.content.Context.CAMERA_SERVICE; - /** * Created by Vibhor 06/09/2020 */ @@ -190,8 +186,8 @@ public static boolean isHdrxNrOn() { return preferenceKeys.settingsManager.getBoolean(SCOPE_GLOBAL, Key.KEY_HDRX_NR); } - public static boolean isSaveRawOn() { - return preferenceKeys.settingsManager.getBoolean(SCOPE_GLOBAL, Key.KEY_SAVE_RAW); + public static int isSaveRaw() { + return preferenceKeys.settingsManager.getInteger(SCOPE_GLOBAL, Key.KEY_SAVE_RAW); } public static boolean isBatterySaverOn(){ @@ -204,7 +200,7 @@ public static boolean isAspect169On(){ public static void setBatterySaver(boolean value) { preferenceKeys.settingsManager.set(SCOPE_GLOBAL, Key.KEY_ENERGY_SAVING,value); } - public static void setSaveRaw(boolean value) { + public static void setSaveRaw(int value) { preferenceKeys.settingsManager.set(SCOPE_GLOBAL, Key.KEY_SAVE_RAW,value); } diff --git a/app/src/main/java/com/particlesdevs/photoncamera/ui/SplashActivity.java b/app/src/main/java/com/particlesdevs/photoncamera/ui/SplashActivity.java index b891fcb6e..04346df4f 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/ui/SplashActivity.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/ui/SplashActivity.java @@ -1,11 +1,13 @@ package com.particlesdevs.photoncamera.ui; import android.annotation.SuppressLint; +import android.content.Intent; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.particlesdevs.photoncamera.AiPhoto; +import com.particlesdevs.photoncamera.ui.camera.CameraActivity; import com.particlesdevs.photoncamera.util.FileManager; import java.io.File; @@ -30,7 +32,7 @@ protected void onCreate(Bundle savedInstanceState) { } catch (IOException e) { e.printStackTrace(); } - AiPhoto.initAi(this); + startActivity(new Intent(SplashActivity.this, CameraActivity.class)); finish(); } } diff --git a/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/CameraUIController.java b/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/CameraUIController.java index 99197fcfb..f126bd323 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/CameraUIController.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/CameraUIController.java @@ -245,7 +245,7 @@ public void onChanged(TopBarSettingsData topBarSettingsData) { PreferenceKeys.setEisPhoto(value.equals(1)); break; case RAW: - PreferenceKeys.setSaveRaw(value.equals(1)); + PreferenceKeys.setSaveRaw((Integer) value); break; case BATTERY_SAVER: PreferenceKeys.setBatterySaver(value.equals(1)); diff --git a/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/viewmodel/SettingsBarEntryProvider.java b/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/viewmodel/SettingsBarEntryProvider.java index 0ee0f2ca4..b0888f91e 100644 --- a/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/viewmodel/SettingsBarEntryProvider.java +++ b/app/src/main/java/com/particlesdevs/photoncamera/ui/camera/viewmodel/SettingsBarEntryProvider.java @@ -79,7 +79,7 @@ public void updateAllEntries() { updateEntry(eisEntry, PreferenceKeys.isEisPhotoOn()); updateEntry(fpsEntry, PreferenceKeys.isFpsPreviewOn()); updateEntry(quadEntry, PreferenceKeys.isQuadBayerOn()); - updateEntry(saveRawEntry, PreferenceKeys.isSaveRawOn()); + updateEntry(saveRawEntry, PreferenceKeys.isSaveRaw()); updateEntry(batterySaverEntry, PreferenceKeys.isBatterySaverOn()); } @@ -120,7 +120,8 @@ private void createEisEntry() { private void createSaveRawEntry() { saveRawEntry.addSettingsBarButtonModels( SettingsBarButtonModel.newButtonModel(R.id.raw_off_button, R.drawable.ic_raw_off, R.string.jpg_only, 0, saveRawEntry), - SettingsBarButtonModel.newButtonModel(R.id.raw_on_button, R.drawable.ic_raw, R.string.raw_plus_jpg, 1, saveRawEntry) + SettingsBarButtonModel.newButtonModel(R.id.raw_on_button, R.drawable.ic_raw, R.string.raw_plus_jpg, 1, saveRawEntry), + SettingsBarButtonModel.newButtonModel(R.id.raw_only_button, R.drawable.ic_raw, R.string.raw_string, 2, saveRawEntry) ); } diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index d38bb9b02..44ec565f1 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -16,7 +16,7 @@ Sytost barev Ostrost Zobrazit mřížku - Uložit RAW + JPEG + Uložit Zaoblené rohy Povolit Re-Mosaikování Obecné diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 7cc2acd84..008009aff 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -16,7 +16,7 @@ Saturacion Nitidez Mostrar cuadricula - Guardar RAW + JPEG + Guardar Activar bordes redondos Activar remosaico General diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 088c81fb7..dd967cdc6 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -16,7 +16,7 @@ Zasićenje bojom Oštrina Pokaži rešetku - Spremi RAW + JPEG + Spremi Omogući zakrivljene rubove: Omogući Remosaic Općenito diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index a512086ce..b3eb01806 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -16,7 +16,7 @@ Saturasi Ketajaman Gambar Perlihatkan Garis Penanda - Simpan dokumen RAW + JPEG + Simpan dokumen Aktifkan garis tepi membulat Aktifkan Remosaic Umum diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index ffc669207..3fe65d33c 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -15,7 +15,7 @@ Saturazione Nitidezza Mostra angoli curvi - Salva RAW + JPEG + Salva Generali Riduzione del rumore Abilita filigrana diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 8dee54dc6..6d66a7c7b 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -16,7 +16,7 @@ Заситеност Острина Прикажи линии - Зачувај во RAW + JPEG + Зачувај во Уклучи Заоблени ќошеви Уклучи Remosaic Генерално diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 091a717ac..9a8fd3cea 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -16,7 +16,7 @@ Saturação Nitidez Mostrar grade - Salvar RAW + JPEG + Salvar "Habilitar cantos arredondados " "Habilitar Remosaico " "Geral " diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index dd7b14825..cb8a8fcfe 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -16,7 +16,7 @@ Saturaţie Acuitate Arată grila - Salvează RAW + JPEG + Salvează Permite colţuri rotunjite Permite Remosaic General diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a79d64666..9a23785b7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -32,7 +32,7 @@ Отмена Вы уверены, что хотите удалить? Основные - Сохранить RAW + JPEG + Сохранить Закрыть Неизвестно Тема diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 6711c17c3..9599c866a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -16,7 +16,7 @@ Mättnad Skärpa Visa Rutmönster - Spara RAW + JPEG + Spara Aktivera runda kanter Aktivera Remosaik Generellt diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 02d5dbc23..181195cbc 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -16,7 +16,7 @@ Doygunluk Keskinlik Izgarayı göster - RAW + JPEG kaydet + Kaydet Yuvarlak kenarları etkinleştir Remosaic etkinleştir Genel diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 94a97d1e9..139824466 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -20,7 +20,7 @@ Показати сітку Потужність зменшення шуму Сила злиття шумів - Зберегти RAW + JPEG + Зберегти Увімкнути круглі краї Ввімкнути Remosaic Загальні diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 9726c1db6..6ba8624ee 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -20,7 +20,7 @@ 网格 降噪强度 降噪合并强度 - 保存为 RAW + JPEG + 保存为 圆角 启用 Remosaic 通用 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 400ae2991..cb264c5f1 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -20,7 +20,7 @@ 顯示網格 降噪強度 合併降噪強度 - 儲存為 RAW + JPEG + 儲存為 啟用圓角 啟用 Remosaic 通用 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index fa94dd9be..c5c8cd4ff 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -81,6 +81,16 @@ 4 1 + + JPEG + RAW + JPEG + RAW + + + 0 + 1 + 2 + @string/off @string/three_x3 diff --git a/app/src/main/res/values/default_prefs.xml b/app/src/main/res/values/default_prefs.xml index 137601985..49ef7a82b 100644 --- a/app/src/main/res/values/default_prefs.xml +++ b/app/src/main/res/values/default_prefs.xml @@ -72,4 +72,5 @@ default true 1 + 0 \ No newline at end of file diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml index 4ec4ff2aa..913cb6963 100644 --- a/app/src/main/res/values/ids.xml +++ b/app/src/main/res/values/ids.xml @@ -34,6 +34,7 @@ + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f3a88435d..8b3a4ac3a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -28,7 +28,7 @@ Show Grid Noise Reduction Strength Noise Merge Strength - Save RAW + JPEG + Save Enable Round Edges Enable Remosaic General @@ -116,7 +116,7 @@ 10s RAW RAW + JPEG - JPEG Only + JPEG Off Golden Ratio Diag. Triangles diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index f8617030e..9567fb106 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -149,14 +149,16 @@ android:layout="@layout/preference_category_layout" android:key="@string/pref_category_hdrx_key" android:title="@string/hdrx"> - + android:summary="" + android:entries="@array/raw_mode_entries" + android:entryValues="@array/raw_mode_entryvalues" + android:defaultValue="@string/pref_raw_mode_default_value"/>