2

有人知道为什么我的 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;

}
4

1 回答 1

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);
于 2012-08-20T09:01:39.293 回答