OTA bitmapi loomine

11.05.2007  |  Gunnar

WAP-põhised ja muud mobiilidele erinevat pudi-padi pakkuvad saidid lasevad kasutajatel endale saata operaatorilogosid, pimenduspilte ja piltsõnumeid. Operaatorilogosid, pimenduspilte ja piltsõnumeid saab luua ise, kuid neid võib ka dünaamiliselt genereerida. Miks mitte lasta kasutajatel näiteks koostada omale operaatorilogosid, kuhu nad saavad ise teksti sisestada? Samuti võib operaatorilogosid genereerida automaatselt värvilistest piltidest, ilma et inimene peaks protsessi vahele sekkuma.

Operaatorilogod on kahe bitised (seega must-valged) bitmap-ip, mis on Nokia puhul OTA (Over The Air) bitmap-i formaadis. Siintoodud meetod OTA bitmap-ide genereerimiseks eeldab, et meetodile etteantav pilt on juba 1bps bitmap. See tähendab siis seda, et sisend on bitmap, kus iga punkti defineerimiseks on kasutusel üks bit. Värvilised pildid saab vastavasse formaati viia automaatselt, koodinäite leiab meie blogi kandest Värviliste piltide konvertimine kahevärvilisteks.

NB! Operaatorilogode, pimenduspiltide ja piltsõnumite piltide suurused peavad olema täpsed, sest turul on palju telefonimudeleid, mis ignoreerivad saadetist, kui selle suurus pole täpselt paigas. Täpsemat infot annab Nokia Developers Forum.

Selles näites toodud meetod võtab sisendine vastu 1bps formaadis bitmap-i ning tagastab selle põhjal genereeritud OTA bitmap-i baidimassiivina. See võimaldab loodud OTA bitmap-i salvestada näiteks serveri kõvakettale. Samuti on baidimassiiv mugavaks lahenduseks OTA bitmap-i sisaldava SMS-i koostamiseks.

byte[] OtaBitmap(Bitmap bm)
{
    int y, x;
    int i, j;
    Color c;
    byte[] b;
    byte b2;

    double d1, d2;
    d1 = Convert.ToByte(bm.Width);
    d2 = Convert.ToByte(bm.Height);

    b = new byte[int.Parse((Math.Ceiling(d1*d2/8)-1).ToString("#"))+4];

    b[0]=0;
    b[1]=Convert.ToByte(bm.Width);
    b[2]=Convert.ToByte(bm.Height);
    b[3]=1;
    i=-1;
    j=4;

    for(y=0; y<bm.Height; y++)
        for(x=0; x<bm.Width; x++)
        {
            if(i==7)
            {
                i = -1;
                j = j +1;
            }
            i++;
            c = bm.GetPixel(x,y);
            b[j] = Convert.ToByte(b[j]<&lt;1);
            if(c.R!=0 && c.G!=0 && c.B!=0)
                b[j] = Convert.ToByte(b[j] | 1);
            else
                b[j] = Convert.ToByte(b[j] | 0);
        }
    return b;
}

2 kommentaari sissekandele “OTA bitmapi loomine”

  1. Fernando Olmos

    Hey!
    It’s the first time I check a blog from your country, and I think it’s really great done. My congratulations.
    I’ll keep in touch to link you, okay?
    see you
    visit my blog to at http://boggito.blogspot.com

    bye bye
    fernando

  2. Gunnar

    Siit paistab, et peame oma rahvusvahelise blogi idee ikka kiriesti teoks tegema. :D

Kommenteeri

sulge
Saada link e-postiga

© DT 2012 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress