Как обрезать .png EncodedImage в BlackBerry при сохранении прозрачности - PullRequest
1 голос
/ 24 сентября 2010

У меня есть одно изображение .png с несколькими значками на нем (с прозрачными областями), и я хочу вырезать из него отдельные значки.В Java ME это было довольно просто, но в BlackBerry я не нашел аналога.Код здесь показывает пример с растровым изображением , однако при этом закрашиваются прозрачные области белым цветом:

public Bitmap cropImage(Bitmap image, int x, int y, int width, int height) {
    Bitmap result = new Bitmap(width, height);
    Graphics g = new Graphics(result);
    g.drawBitmap(0, 0, width, height, image, x, y);
    return result;
}

Мне нужно то же самое для EncodedImage, чтобы сохранить прозрачность, но Graphics конструктор принимает только Bitmap.Есть ли другой способ сделать это?Спасибо за советывот так:

public Bitmap cropImage(Bitmap image, int x, int y, int width, int height) {
    Bitmap result = new Bitmap(width, height);
    int[] argbData = new int[width * height];
    image.getARGB(argbData, 0, width, x, y, width, height);
    result.setARGB(argbData, 0, width, 0, 0, width, height);
    return result;
}

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

Извините, я не пробовал этот код, но он должен дать вам идею:

int[] argbData = new int[ width * height ];
image.getARGB(      argbData,
                    0,
                    width
                    x,
                    y,
                    width,
                    height);

Bitmap result = new Bitmap(width, height);
Graphics g = new Graphics(result);
g.drawARGB(argbData , 0, width, 0, 0, width, height);

return result;
0 голосов
/ 24 сентября 2010

попробуйте использовать

g.setGlobalAlpha(0);

до

g.drawBitmap(0, 0, width, height, image, x, y);

или вы можете использовать

drawARGB(int[] data, int offset, int scanLength, int x, int y, int width, int height) 

, которые сохраняют альфа в целевом изображении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...