Loading res/layout/filtershow_export_dialog.xml +45 −15 Original line number Diff line number Diff line Loading @@ -27,31 +27,61 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal|center_vertical" android:layout_margin="7dp" android:text="@string/select_compression"/> android:text="@string/select_output_settings"/> <LinearLayout <GridLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> android:layout_height="wrap_content" android:alignmentMode="alignBounds" android:useDefaultMargins="true" android:columnOrderPreserved="false" android:columnCount="5"> <TextView android:text="@string/size" android:layout_gravity="right|center_vertical"/> <EditText android:id="@+id/editableWidth" android:layout_gravity="right|center_vertical" android:layout_width="100dp" android:inputType="number"/> <TextView android:text="@string/x" android:layout_gravity="center"/> <EditText android:id="@+id/editableHeight" android:layout_gravity="left|center_vertical" android:layout_width="100dp" android:inputType="number"/> <TextView android:id="@+id/estimadedSize" android:layout_gravity="center"/> <TextView android:text="@string/quality" android:layout_margin="7dp" android:layout_gravity="right|center_vertical" /> <SeekBar android:id="@+id/qualitySeekBar" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="3" android:layout_margin="7dp" android:layout_gravity="center" android:max="100" android:progress="100"/> android:progress="100" android:layout_width="400dp" android:layout_columnSpan="3"/> <TextView android:id="@+id/qualityTextView" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginLeft="7dp" android:layout_gravity="center_vertical|center_horizontal"/> android:layout_margin="7dp" android:layout_gravity="left|center_vertical"/> </LinearLayout> </GridLayout> <LinearLayout android:orientation="horizontal" Loading res/values/filtershow_strings.xml +8 −1 Original line number Diff line number Diff line Loading @@ -49,10 +49,17 @@ <string name="hide_imagestate_panel">Hide Applied Effects</string> <!-- Text for the menu item to export a flattened photo[CHAR LIMIT=30] --> <string name="export_flattened">Export Flattened Image</string> <!-- Export Dialog--> <!-- Text for selecting export image quality [CHAR LIMIT=100] --> <string name="select_compression">Select output quality.</string> <string name="select_output_settings">Select Output Settings.</string> <!-- Text for quality value tag [CHAR LIMIT=30] --> <string name="quality">Quality</string> <!-- Text for size value tag [CHAR LIMIT=30] --> <string name="size">Size</string> <!-- Text for size x [CHAR LIMIT=1] --> <string name="x">x</string> <!-- Name for the overflow menu item for settings [CHAR LIMIT=20] --> <string name="menu_settings">Settings</string> Loading src/com/android/gallery3d/filtershow/imageshow/GeometryMathUtils.java +9 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,15 @@ public final class GeometryMathUtils { unpackGeometry(outHolder, geometry); } public static Rect finalGeometryRect(int width, int height, Collection<FilterRepresentation> geometry) { GeometryHolder holder = unpackGeometry(geometry); RectF crop = getTrueCropRect(holder, width, height); Rect frame = new Rect(); crop.roundOut(frame); return frame; } private static Bitmap applyFullGeometryMatrix(Bitmap image, GeometryHolder holder) { int width = image.getWidth(); int height = image.getHeight(); Loading src/com/android/gallery3d/filtershow/pipeline/ImagePreset.java +4 −0 Original line number Diff line number Diff line Loading @@ -421,6 +421,10 @@ public class ImagePreset { return null; } public Rect finalGeometryRect(int width, int height) { return GeometryMathUtils.finalGeometryRect(width, height, getGeometryFilters()); } public Bitmap applyGeometry(Bitmap bitmap, FilterEnvironment environment) { // Apply any transform -- 90 rotate, flip, straighten, crop // Returns a new bitmap. Loading src/com/android/gallery3d/filtershow/pipeline/ImageSavingTask.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.pipeline; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Rect; import android.net.Uri; import com.android.gallery3d.filtershow.cache.ImageLoader; import com.android.gallery3d.filtershow.filters.FiltersManager; Loading @@ -35,6 +36,7 @@ public class ImageSavingTask extends ProcessingTask { ImagePreset preset; boolean flatten; int quality; float sizeFactor; } static class UpdateBitmap implements Update { Loading @@ -55,7 +57,8 @@ public class ImageSavingTask extends ProcessingTask { } public void saveImage(Uri sourceUri, Uri selectedUri, File destinationFile, ImagePreset preset, boolean flatten, int quality) { File destinationFile, ImagePreset preset, boolean flatten, int quality, float sizeFactor) { SaveRequest request = new SaveRequest(); request.sourceUri = sourceUri; request.selectedUri = selectedUri; Loading @@ -63,6 +66,7 @@ public class ImageSavingTask extends ProcessingTask { request.preset = preset; request.flatten = flatten; request.quality = quality; request.sizeFactor = sizeFactor; postRequest(request); } Loading @@ -89,7 +93,8 @@ public class ImageSavingTask extends ProcessingTask { postUpdate(updateProgress); } }); Uri uri = saveImage.processAndSaveImage(preset, !flatten, request.quality); Uri uri = saveImage.processAndSaveImage(preset, !flatten, request.quality, request.sizeFactor); URIResult result = new URIResult(); result.uri = uri; return result; Loading Loading
res/layout/filtershow_export_dialog.xml +45 −15 Original line number Diff line number Diff line Loading @@ -27,31 +27,61 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal|center_vertical" android:layout_margin="7dp" android:text="@string/select_compression"/> android:text="@string/select_output_settings"/> <LinearLayout <GridLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> android:layout_height="wrap_content" android:alignmentMode="alignBounds" android:useDefaultMargins="true" android:columnOrderPreserved="false" android:columnCount="5"> <TextView android:text="@string/size" android:layout_gravity="right|center_vertical"/> <EditText android:id="@+id/editableWidth" android:layout_gravity="right|center_vertical" android:layout_width="100dp" android:inputType="number"/> <TextView android:text="@string/x" android:layout_gravity="center"/> <EditText android:id="@+id/editableHeight" android:layout_gravity="left|center_vertical" android:layout_width="100dp" android:inputType="number"/> <TextView android:id="@+id/estimadedSize" android:layout_gravity="center"/> <TextView android:text="@string/quality" android:layout_margin="7dp" android:layout_gravity="right|center_vertical" /> <SeekBar android:id="@+id/qualitySeekBar" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="3" android:layout_margin="7dp" android:layout_gravity="center" android:max="100" android:progress="100"/> android:progress="100" android:layout_width="400dp" android:layout_columnSpan="3"/> <TextView android:id="@+id/qualityTextView" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginLeft="7dp" android:layout_gravity="center_vertical|center_horizontal"/> android:layout_margin="7dp" android:layout_gravity="left|center_vertical"/> </LinearLayout> </GridLayout> <LinearLayout android:orientation="horizontal" Loading
res/values/filtershow_strings.xml +8 −1 Original line number Diff line number Diff line Loading @@ -49,10 +49,17 @@ <string name="hide_imagestate_panel">Hide Applied Effects</string> <!-- Text for the menu item to export a flattened photo[CHAR LIMIT=30] --> <string name="export_flattened">Export Flattened Image</string> <!-- Export Dialog--> <!-- Text for selecting export image quality [CHAR LIMIT=100] --> <string name="select_compression">Select output quality.</string> <string name="select_output_settings">Select Output Settings.</string> <!-- Text for quality value tag [CHAR LIMIT=30] --> <string name="quality">Quality</string> <!-- Text for size value tag [CHAR LIMIT=30] --> <string name="size">Size</string> <!-- Text for size x [CHAR LIMIT=1] --> <string name="x">x</string> <!-- Name for the overflow menu item for settings [CHAR LIMIT=20] --> <string name="menu_settings">Settings</string> Loading
src/com/android/gallery3d/filtershow/imageshow/GeometryMathUtils.java +9 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,15 @@ public final class GeometryMathUtils { unpackGeometry(outHolder, geometry); } public static Rect finalGeometryRect(int width, int height, Collection<FilterRepresentation> geometry) { GeometryHolder holder = unpackGeometry(geometry); RectF crop = getTrueCropRect(holder, width, height); Rect frame = new Rect(); crop.roundOut(frame); return frame; } private static Bitmap applyFullGeometryMatrix(Bitmap image, GeometryHolder holder) { int width = image.getWidth(); int height = image.getHeight(); Loading
src/com/android/gallery3d/filtershow/pipeline/ImagePreset.java +4 −0 Original line number Diff line number Diff line Loading @@ -421,6 +421,10 @@ public class ImagePreset { return null; } public Rect finalGeometryRect(int width, int height) { return GeometryMathUtils.finalGeometryRect(width, height, getGeometryFilters()); } public Bitmap applyGeometry(Bitmap bitmap, FilterEnvironment environment) { // Apply any transform -- 90 rotate, flip, straighten, crop // Returns a new bitmap. Loading
src/com/android/gallery3d/filtershow/pipeline/ImageSavingTask.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.pipeline; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Rect; import android.net.Uri; import com.android.gallery3d.filtershow.cache.ImageLoader; import com.android.gallery3d.filtershow.filters.FiltersManager; Loading @@ -35,6 +36,7 @@ public class ImageSavingTask extends ProcessingTask { ImagePreset preset; boolean flatten; int quality; float sizeFactor; } static class UpdateBitmap implements Update { Loading @@ -55,7 +57,8 @@ public class ImageSavingTask extends ProcessingTask { } public void saveImage(Uri sourceUri, Uri selectedUri, File destinationFile, ImagePreset preset, boolean flatten, int quality) { File destinationFile, ImagePreset preset, boolean flatten, int quality, float sizeFactor) { SaveRequest request = new SaveRequest(); request.sourceUri = sourceUri; request.selectedUri = selectedUri; Loading @@ -63,6 +66,7 @@ public class ImageSavingTask extends ProcessingTask { request.preset = preset; request.flatten = flatten; request.quality = quality; request.sizeFactor = sizeFactor; postRequest(request); } Loading @@ -89,7 +93,8 @@ public class ImageSavingTask extends ProcessingTask { postUpdate(updateProgress); } }); Uri uri = saveImage.processAndSaveImage(preset, !flatten, request.quality); Uri uri = saveImage.processAndSaveImage(preset, !flatten, request.quality, request.sizeFactor); URIResult result = new URIResult(); result.uri = uri; return result; Loading