使用 Bitmap 裁剪图片。。。
澳门新葡京官网
澳门新葡京官网
当前位置 : 澳门新葡京官网 > 网上赌博新址

使用 Bitmap 裁剪图片。。。

public static List<BitmapPiece> getSquarePiecesBitmap bitmap,int x {
        List<BitmapPiece> pieces = new ArrayList<>x*x;
        int width = bitmap.getWidth > bitmap.getHeight ? bitmap.getHeight : bitmap.getWidth;

        int pieceWidth = width / x;

        pwidth = width;

        for int i=0; i<x; i++ {
            for int j=0; j<x; j++ {
                BitmapPiece temp = new BitmapPiece;
                temp.index = i * x + i ;
                //  开始裁剪的 xy 位置
                int xBegin = j * pieceWidth;
                int yBegin = i * pieceWidth;
                temp.bitmap = Bitmap.createBitmapbitmap,xBegin,yBegin,pieceWidth,pieceWidth;
                pieces.addtemp;

            }
        }

        return pieces;

    }

我想把一张图片,平均切割成 N*N 份,而且是等宽高的,以上是我的代码,
然后发现图片切割出来变得很奇怪。有的是长宽不等。。。
。。。什么原因呀。。。

我开始也是怀疑代码有问题,但是我 Log 一下,Debeg 一下,
所以的 xBegin, yBegin, pieceWidth 都正常 。。。。
这下子纳闷了。。。。

我已经找到 bug .... 了

原来的问题:把一张图片裁剪成很多份,长宽相等,显示3×3九宫格,然后发现某些图片的显示,长宽不等。昨天睡觉的时候,想到了。。。和屏幕的宽度,图片裁剪后的宽度有关。

原因:代码中是取出图片的长宽最小值,去除以3,得出边长,然后裁剪,这样出来的 Bitmap ,因为一行的图片有3张,有可能,其边长的3bei比屏幕的宽度还要大!然后就显示不全了,长宽不等。

解决:裁剪出来后,我判断 : 边长的3倍是否 大于 屏幕的宽度,如果是,就压缩!

。。。然后OK了。。。

打一下log,看看出来的xbegin,ybegin是否合理,裁剪出来的图片有多少个不合理的,有没有合理的

栏目列表

广告位

澳门新葡京官网