SmartCropper icon indicating copy to clipboard operation
SmartCropper copied to clipboard

裁剪之后,保存的图片显示范围超过裁剪范围

Open zpswz opened this issue 2 years ago • 5 comments

caijian1 caijian2

是有什么地方设置不对吗

zpswz avatar Mar 09 '22 10:03 zpswz

这个问题你解决了吗?

maoxiaozhu avatar Jun 30 '22 01:06 maoxiaozhu

caijian1 caijian2

是有什么地方设置不对吗

解决了吗

maoxiaozhu avatar Jun 30 '22 01:06 maoxiaozhu

菜见1 菜见2 有什么地方设置不对吗

解决了吗

没有作者都没有发解决方案

zpswz avatar Dec 30 '22 03:12 zpswz

我在部分机型上遇到了这个问题

修复方案

@Override
    public Bitmap getBitmap() {
        Bitmap bmp = null;
        Drawable drawable = getDrawable();
        if (drawable instanceof BitmapDrawable) {
            bmp = ((BitmapDrawable) drawable).getBitmap();
        }
        //修复裁剪区域不一致问题
        if (bmp != null) {
            int width = drawable.getIntrinsicWidth();
            int height = drawable.getIntrinsicHeight();
            int bitWidth = bmp.getWidth();
            int bitHeight = bmp.getHeight();
            if (width != bitWidth || height != bitHeight) {
                Matrix matrix = new Matrix();
                matrix.setScale(1.0f * width / bitWidth, 1.0f * height / bitHeight);
                return Bitmap.createBitmap(bmp, 0, 0, bitWidth, bitHeight, matrix, true);
            }
        }
        return bmp;
    }

这两个方法获取出的 大小不一致造成的

private Point[] getFullImgCropPoints() {
        Point[] points = new Point[4];
        Drawable drawable = getDrawable();
        if (drawable != null) {
            int width = drawable.getIntrinsicWidth();
            int height = drawable.getIntrinsicHeight();
            points[0] = new Point(0, 0);
            points[1] = new Point(width, 0);
            points[2] = new Point(width, height);
            points[3] = new Point(0, height);
        }
        return points;
    }

   

public Bitmap getBitmap() {

        Bitmap bmp = null;
        Drawable drawable = getDrawable();
        if (drawable instanceof BitmapDrawable) {
            bmp = ((BitmapDrawable) drawable).getBitmap();
        }
        return bmp;
    }

luoye000 avatar Jul 18 '23 10:07 luoye000

适配方案的原因

codeguyFred avatar Aug 16 '23 10:08 codeguyFred