有人知道为什么我的image2没有在image2.scaleImage32()方法中缩放吗?
这是我的代码:
public ZoomScreen setScreen(){
map1.getBitmap().scaleInto(tempBmp, Bitmap.FILTER_BILINEAR);
Graphics g = Graphics.create(tempBmp); //works
g.drawBitmap(100, 100, bitmapImage2.getWidth(), bitmapImage2.getHeight(), bitmapImage2, 0, 0); //works
image2 = PNGEncodedImage.encode(tempBmp); //works
image3 = image2.scaleImage32(Fixed32.toFP(100), Fixed32.toFP(200)); // does not work
ZoomScreen screen = new ZoomScreen(image3);// works
return screen;
}
答案 0 :(得分:0)
也许您将宽度和高度的绝对值传递给scaleImage32()
方法。但这不是使用此方法的正确方法。您需要传递比例因子而不是宽度和高度的绝对值。
假设image
是EncodedImage类实例,而thumbnailSide
是缩放图像的一面(以像素为单位),这里的代码应该适合您:
final int currentWidthFixed32 = Fixed32.toFP(image.getWidth());
final int currentHeightFixed32 = Fixed32.toFP(image.getHeight());
final int thumbnailSideFixed32 = Fixed32.toFP(thumbnailSide);
final int scaleXFixed32 = Fixed32.div(currentWidthFixed32, thumbnailSideFixed32);
final int scaleYFixed32 = Fixed32.div(currentHeightFixed32, thumbnailSideFixed32);
image = image.scaleImage32(scaleXFixed32, scaleYFixed32);