Ich versuche, eine Bitmap zu verkleinern, die Transparenz enthält. Leider führen alle drei Methoden, die ich ausprobiert habe, zu Weiß, wo es volle Transparenz geben sollte. Ich möchte die Transparenz bewahren.Skalieren Sie eine Bitmap und bewahren Sie Alpha, auf BlackBerry
Das Bitmap I Skalierung bin immer quadratisch, so meine Funktionen setzen voraus, dass:
private static Bitmap scale1(int edge, final Bitmap res) {
int factor =
edge == 0 ? Fixed32.ONE : Fixed32.div(res.getHeight(), edge);
Bitmap scaled = PNGEncodedImage.encode(res).
scaleImage32(factor, factor).getBitmap();
return scaled;
}
private static Bitmap scale2(int edge, final Bitmap res) {
Bitmap val = new Bitmap(edge,edge);
val.createAlpha(Bitmap.ALPHA_BITDEPTH_8BPP);
res.scaleInto(val, Bitmap.FILTER_BILINEAR);
return val;
}
private static Bitmap scale3(int edge, final Bitmap res) {
Bitmap val = new Bitmap(edge,edge);
val.createAlpha(Bitmap.ALPHA_BITDEPTH_8BPP);
Graphics g = new Graphics(val);
int[] pathX = new int[] {0, 0+edge, 0+edge, 0};
int[] pathY = new int[] {0, 0, 0+edge, 0+edge};
byte[] pathPointTypes = new byte[] {
Graphics.CURVEDPATH_END_POINT,Graphics.CURVEDPATH_END_POINT,
Graphics.CURVEDPATH_END_POINT,Graphics.CURVEDPATH_END_POINT};
int factor =
edge == 0 ? Fixed32.ONE : Fixed32.div(res.getHeight(), edge);
g.drawTexturedPath(pathX, pathY, pathPointTypes, null,
0, 0, factor, Fixed32.toFP(0), Fixed32.toFP(0), factor, res);
return val;
}
Können Sie sich bitte diese Frage ansehen? http://stackoverflow.com/questions/5298718/resize-bitmap-on-blackberry-while-keeping-alpha-data Ich habe das Gefühl, Sie könnten es vielleicht beantworten. –
Könnten Sie ein Beispiel veröffentlichen, wie Sie drawARGB verwendet haben? Tnx –