1

我对黑莓有点陌生。我有一个图像,我需要根据用户的输入旋转到一定程度。我尝试过搜索,但似乎找不到任何东西。任何人都可以指出我正确的方向吗?

4

3 回答 3

1

有一个J2ME 军刀库,检查一下。

它也包含旋转功能。

于 2012-08-25T11:06:12.427 回答
1

这是 Blackberry 知识库文章的一部分。将您的位图和角度传递给此函数以获取旋转位图。

public static Bitmap rotate(Bitmap oldImage) throws Exception 
{
    int w = oldImage.getWidth();
    int h = oldImage.getHeight();
    int d = Math.max(w, h);
    int amountPxAdded = 0;
    if (w > h) {
        amountPxAdded = w - h;
    }
    Bitmap oldBitmapSquared = new Bitmap(d, d);
    int[] data = new int[w * h];
    oldImage.getARGB(data, 0, w, 0, 0, w, h);
    oldBitmapSquared.setARGB(data, 0, w, 0, 0, w, h);
    Bitmap finalRes = new Bitmap(h, w);
    int fW = finalRes.getWidth();
    int fH = finalRes.getHeight();
    oldImage = null;
    Bitmap rotated = rotateSquareImage(oldBitmapSquared, <Angle>);
    oldBitmapSquared = null;
    data = new int[fW * fH];
    rotated.getARGB(data, 0, fW, amountPxAdded, 0, fW, fH);
    rotated = null;
    finalRes.setARGB(data, 0, fW, 0, 0, fW, fH);
    return finalRes;
}

private static Bitmap rotateSquareImage(Bitmap oldB, int angle) throws Exception {
    int w = oldB.getWidth();
    int h = oldB.getHeight();
    Bitmap newB = new Bitmap(w, h);
    int[] oldD = new int[w * h];
    int[] newD = new int[w * h];
    oldB.getARGB(oldD, 0, w, 0, 0, w, h);
    int[][] old2d = new int[h][w];
    int[] js;
    int old2dLen = old2d.length;
    int jsLen;
    for (int i = 0; i < old2dLen; i++) {
        js = old2d[i];
        jsLen = js.length;
        for (int j = 0; j < jsLen; j++) {
            js[j] = oldD[i * w + j];
        }
    }
    int[][] rotated = new int[h][w];
    for (int i = 0; i < h; ++i) {
        for (int j = 0; j < w; ++j) {
            rotated[i][j] = old2d[h - j - 1][i];
        }
    }
    old2d = null;
    for (int i = 0; i < h; ++i) {
        for (int j = 0; j < w; ++j) {
            newD[i * w + j] = rotated[i][j];
        }
    }
    rotated = null;
    newB.setARGB(newD, 0, w, 0, 0, w, h);
    return newB;
}
于 2012-08-27T04:43:11.007 回答
1

按着这些次序:

从此链接下载zip文件: BitmapRotate at down side。

从中提取ImageManipulator.java并将其添加到您的项目中;

并使用此链接中的代码:RotatingBitmap on Blackberry

我认为这对您有帮助;

或者

使用以下 BitmapRotate.zip 代码从该链接旋转图像:

黑莓中的位图旋转

于 2012-08-27T06:22:05.280 回答