2011-01-31 3 views
0

Я работаю с изменением размера растровых изображений в приложении с помощью темы Форума поддержки BlackBerry "Resizing bitmap without creating encoded image". Но с кодом из этого потока я могу уменьшить только растровое изображение справа налево, от ширины 360 до 0, как изменить размер слева направо.Изменение размера растровых изображений на BlackBerry

+0

перемасштабирования работает на изображении в каком-либо направлении, но результат будет масштабироваться изображением - нет слева направо или справа налево соображения в результате. В чем проблема, с которой вы столкнулись? –

+0

Hi Micheal Когда я даю ширину в методе resizeBitmap (растровое изображение, int width, int height) как 320, тогда он уменьшает 40 пикселей с правого конца. Я хочу уменьшить его с левой стороны. Как я могу это сделать. – Koushik

+0

Я думаю, вы имеете в виду «урожай», а не «изменение размера». Изменение размера означает, что вы сохраняете все части изображения, увеличивая или уменьшая количество используемых пикселей. «Crop» означает, что вы удаляете большие части изображения. –

ответ

0

Используйте это:

int oolddWidth; 
int oolddHeight; 
int ddispplayWidth; 
int ddispplayHeight; 
EncodedImage eih1 = EncodedImage.getEncodedImageResource("add2.png"); 
oolddWidth = eih1.getWidth(); 
oolddHeight = eih1.getHeight(); 
ddispplayWidth = Display.getWidth()-40; 
ddispplayHeight = 80; 
    int nnumeerator = net.rim.device.api.math.Fixed32.toFP(oolddWidth); 
    int ddenoominator = net.rim.device.api.math.Fixed32.toFP(ddispplayWidth); 
    int wwidtthScale = net.rim.device.api.math.Fixed32.div(nnumeerator, ddenoominator); 
    nnumeerator = net.rim.device.api.math.Fixed32.toFP(oolddHeight); 
    ddenoominator = net.rim.device.api.math.Fixed32.toFP(ddispplayHeight); 
    int hheighhtScale = net.rim.device.api.math.Fixed32.div(nnumeerator, ddenoominator); 
    EncodedImage newEih1 = eih1.scaleImage32(wwidtthScale, hheighhtScale); 
    final Bitmap header1 = newEih1.getBitmap(); 
Смежные вопросы