Skip to content

Commit 2a6ecf7

Browse files
committed
修复: 对自由比例的图片进行单图滤镜处理时,最终结果出现黑边
1 parent d913861 commit 2a6ecf7

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

picture_library/src/main/java/com/luck/picture/lib/instagram/process/InstagramMediaSingleImageContainer.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,15 @@ public class InstagramMediaSingleImageContainer extends FrameLayout implements I
5656
private int mSelectionPosition;
5757
private final View mLoadingView;
5858
private PictureSelectionConfig mConfig;
59+
private Bitmap mBitmap;
5960
private int mSelectionFilter;
6061
private PictureCustomDialog mDialog;
62+
private GPUImage mGpuImage;
6163

6264
public InstagramMediaSingleImageContainer(@NonNull Context context, PictureSelectionConfig config, Bitmap bitmap, boolean isAspectRatio, int selectionFilter) {
6365
super(context);
6466
mConfig = config;
67+
mBitmap = bitmap;
6568
mSelectionFilter = selectionFilter;
6669
setWillNotDraw(false);
6770
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
@@ -73,6 +76,8 @@ public InstagramMediaSingleImageContainer(@NonNull Context context, PictureSelec
7376
mPaint.setColor(Color.parseColor("#efefef"));
7477
}
7578

79+
mGpuImage = new GPUImage(context);
80+
7681
mImageView = new GPUImageView(context);
7782
addView(mImageView);
7883
if (isAspectRatio) {
@@ -144,6 +149,7 @@ public void onItemClick(View view, int position, FilterType filterType) {
144149

145150
if (mSelectionPosition != position) {
146151
mImageView.setFilter(FilterType.createFilterForType(getContext(), filterType));
152+
mGpuImage.setFilter(FilterType.createFilterForType(getContext(), filterType));
147153

148154
int previousPosition = mSelectionPosition;
149155
mSelectionPosition = position;
@@ -245,9 +251,10 @@ public SaveTask(final Context context, final String folderName, final String fil
245251
@Override
246252
protected Void doInBackground(final Void... params) {
247253
try {
248-
Bitmap result = width != 0 ? mImageView.capture(width, height) : mImageView.capture();
254+
// Bitmap result = width != 0 ? mImageView.capture(width, height) : mImageView.capture();
255+
Bitmap result = mGpuImage.getBitmapWithFilterApplied(mBitmap);
249256
saveImage(folderName, fileName, result);
250-
} catch (InterruptedException e) {
257+
} catch (Exception e) {
251258
e.printStackTrace();
252259
}
253260
return null;

0 commit comments

Comments
 (0)