黑莓:如何翻转位图?

标签 blackberry bitmap bitmapdata flip

如何翻转Bitmap倒挂?

(我需要这个来在另一个程序中加载 OpenGL 纹理)。

这是我失败的尝试:

screenshot

stripe.png(由 Pitr@OpenClipart 提供):

enter image description here

Flip.java:

import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;

public class Flip extends UiApplication {
    public static void main(String args[]) {
        Flip app = new Flip();
        app.enterEventDispatcher();
    }

    public Flip() {
        pushScreen(new MyScreen());
    }
} 

class MyScreen extends MainScreen {
    static final Bitmap STRIPE = flip(Bitmap.getBitmapResource("stripe.png"));

    public MyScreen() {
        setTitle("Flip the bitmap");
        add(new BitmapField(STRIPE));
        add(new ButtonField("Hello world"));
    }

    static Bitmap flip(Bitmap bitmap) {
        int[] argb = new int[bitmap.getWidth() * bitmap.getHeight()];
        bitmap.getARGB(argb, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
        for (int i = 0; i < bitmap.getHeight(); i++) {
            for (int j = 0; j < bitmap.getWidth(); j++) {
                int swap = argb[i * bitmap.getWidth() + j];
                argb[(bitmap.getHeight() - 1 - i) * bitmap.getWidth() + j] = swap;
            }
        }
        bitmap.setARGB(argb, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
        return bitmap;
    }
}

最佳答案

尝试使用这段代码:

    for (int y = 0; y < bitmap.getHeight() / 2; y++) {
        int upper_row = bitmap.getWidth() * y;
        int lower_row = bitmap.getWidth() * (bitmap.getHeight() - 1 - y);
        for (int x = 0; x < bitmap.getWidth(); x++) {
            int temp = argb[upper_row + x];
            argb[upper_row + x] = argb[lower_row + x];
            argb[lower_row + x] = temp;
        }
    }

关于黑莓:如何翻转位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6558598/

相关文章:

blackberry - 黑莓Field中的翻转动画

java - 无法在显示按钮列表的表单上添加背景颜色或图像 - Blackberry

java - Android 中快速变化的位图

actionscript-3 - BitmapData类的threshold方法中mask参数有什么作用?

java - 如何知道黑莓手机中哪个屏幕打开?

sqlite - 所有黑莓设备都可以升级到最新固件吗?

android - 使用 Glide 和 SimpleTarget 将图像随机加载到 View 寻呼机中

java - Android下Bitmap.setPixels扭曲颜色

apache-flex - 将模糊滤镜应用于 BitmapData

actionscript-3 - 如何使用Flash BitmapData在不损失质量的情况下放大图像?