Как перевернуть EncodedImage Blackberry - PullRequest
1 голос
/ 10 мая 2011

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 без конвертации, потому что это занимает немного много времени

PS PNGEncoder.java находится здесь: http://www.mobiyana.com/code/blackberry/PNGEncoder.java

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Действительным решением является предоставление двух версий изображений; один нормальный и один перевернутый. Конечно, вам придется учитывать количество времени, которое требуется для загрузки, и количество места, которое потребуется вашим изображениям. Это проектное решение, которое следует по крайней мере учитывать, если вы ищете более быстрое время загрузки.

0 голосов
/ 10 мая 2011

Graphics.drawTexturedPath () может сделать что-то для вас, я полагаю. Взгляните на это Javadoc от RIM

...