議論/描画インターフェース/ARGB


Top / 議論 / 描画インターフェース / ARGB

画像形式ARGBに関するメモ等

本家

ツールなど

ARGB表示用メソッドに突っ込みを!!

argbファイルをバイト配列に格納してこの関数に渡すと描画

bool drawARGB(byte* rgba, int x, int y, int size) {
 
    int color;
    int startx = x;
    int starty = y;
    ARGBHeader* header = (ARGBHeader*)rgba;
 
    /* check identifier */
    if (header->a != 0x41524742) return false;
 
    /* draw loop */
    for (int i = sizeof(ARGBHeader) / 4; i < size / 4; i++) {
 
        if (x >= startx + header->width) {
 
            y++;
            x = startx;
        }
 
        if (y >= starty + header->height) break;
 
        color = (rgba[i * 4 + 0] || rgba[i * 4 + 1] || rgba[i * 4 + 2]) ? GP_WHITE : GP_BLACK;
 
        put_pixel(x, y, color);
        x++;
    }
 
    return true;
}

コメントとか

参考までにMonaでのファイル読み込みとか

    g_fdcdriver = new FDCDriver();
    g_fdcdriver->motor(ON);
    g_fdcdriver->recalibrate();
    g_fdcdriver->recalibrate();
 
    FAT12* fat = new FAT12((DiskDriver*)g_fdcdriver);
    if (!fat->initilize()) {
 
        info(ERROR, "fat initilize faild\n");
        while (true);
    }
 
    if (!fat->open(".", "MONA.LGO", FAT12::READ_MODE)) {
 
        info(ERROR, "open failed");
    }
 
    int fileSize  = fat->getFileSize();
    int readTimes = fileSize / 512 + (fileSize % 512 ? 1 : 0);
 
    byte* buf = (byte*)malloc(512 * readTimes);
 
    for (int i = 0; i < readTimes; i++) {
 
        if (!fat->read(buf + 512 * i)) {
 
            info(ERROR, "read failed %d", i);
        }
    }
 
    if (!fat->close()) {
       info(ERROR, "close failed");
    }
 
    g_fdcdriver->motor(OFF);
 
    drawARGB(buf, 45, 90, fileSize);
    free(buf);

こっそり張ってみる

mona0.1.0.png

こっそり張ってみる2(信じてはいけません)

uso800.png

MENU

now: 2

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 3691, today: 1, yesterday: 0

添付ファイル: fileuso800.png 486件 [詳細] filetest.PNG 301件 [詳細] filenikq2.PNG 320件 [詳細] filemona0.1.0.png 525件 [詳細] filebmp2argb.lzh 497件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:03 (3734d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.065 sec.