如何翻转EncodedImage Blackberry

时间:2011-05-10 07:21:44

标签: java image blackberry flip

HY。我想翻转水平图像,我使用这段代码:

public static EncodedImage flip (Bitmap png)
{
    int width = png.getWidth();
    int height = png.getHeight();
    Bitmap temp = new Bitmap(width,height);
    int[] argb = new int[ width * height ];
    int[] invertArgb = new int[ width * height ];
    png.getARGB( argb, 0, width, 0, 0, width, height );

    for ( int i = height - 1; i >= 0; --i ) {
        for ( int j = width - 1; j >= 0; --j ) {
            invertArgb[ ( width - j - 1 ) + ( width * i ) ] = argb[ j + ( width * i ) ];
        }
    }
    temp.setARGB( invertArgb, 0, width, 0, 0, width, height );

    PNGEncoder encoder = new PNGEncoder(temp, true);
    byte[] imageBytes = null;
    try {
        imageBytes = encoder.encode(true);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    EncodedImage fullImage = EncodedImage.createEncodedImage(imageBytes, 0, imageBytes.length);

    return fullImage;

}

Buut ..有没有人有一个想法如何直接翻转EncodedImage而不转换,因为它需要一点点

P.S。 PNGEncoder.java在这里:http://www.mobiyana.com/code/blackberry/PNGEncoder.java

2 个答案:

答案 0 :(得分:1)

有效的解决方案是提供两个版本的图像;一个正常,一个翻转。当然,您必须考虑加载所需的时间量与图像所需的空间量。如果您正在寻找更快的加载时间,那么至少应该考虑这个设计决策。

答案 1 :(得分:0)

我认为Graphics.drawTexturedPath()可以为你做些什么。从RIM看一下这个javadoc