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
答案 0 :(得分:1)
有效的解决方案是提供两个版本的图像;一个正常,一个翻转。当然,您必须考虑加载所需的时间量与图像所需的空间量。如果您正在寻找更快的加载时间,那么至少应该考虑这个设计决策。
答案 1 :(得分:0)
我认为Graphics.drawTexturedPath()可以为你做些什么。从RIM看一下这个javadoc