Ahoj,
mám pár dotazů
dělám pořád na puzzle a nejjednoduší způsob se mě jeví průhledná komponenta
Zatím jsem se dostal na toto:
// inicializace obrázků
     BufferedImage bimg = null;
    BufferedImage bimg2 = null;
        try {
            // načtení obrázků
            bimg = ImageIO.read(new File("c:\\LV.jpg"));
            bimg2 = ImageIO.read(new File("c:\\maska.jpg"));
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    // uložení rastrů
    Raster rbimg = bimg.getData();
    Raster rbimgmask = bimg2.getData();
    // převedení rastru do DataBufferu
    DataBuffer databimg = rbimg.getDataBuffer();
    DataBuffer databimgmask = rbimgmask.getDataBuffer();
    // inicializace alpha hodnoty
    int alpha = -1;
    // projetí ve foru celým DataBufferem
    for (int i = 0; i < databimg.getSize(); i++) {
        // zjistí hodnoty na pozici
        int g = databimg.getElem(i);
        int c = databimgmask.getElem(i);
        // pokud je bílá  nastav element na alpha
        if (c == 0){
        databimg.setElem(i,alpha);
        }
    }
zatím to nefunguje ale mám pocit ,že už stačí jen zjistit počet prvků který
tvoří jeden pixel a pak přepsat for podobně jako
for (int i = 0; i < databimg.getSize(); i++3) {
        // zjistí hodnoty na pozici
        int g1 = databimg.getElem(i);
        int g2 = databimg.getElem(i+1);
        int g3 = databimg.getElem(i+2);
        int c1 = databimgmask.getElem(i);
        int c2 = databimgmask.getElem(i+1);
        int c3 = databimgmask.getElem(i+2);
        // pokud je bílá  nastav element na alpha
        if ((c1 == 0)&&(c2 ==0)&&(c3 ==0)){
        databimg.setElem(i,alpha);
        databimg.setElem(i+1,alpha);
        databimg.setElem(i+2,alpha);
        }
ještě  jsem se chtěl zeptat jak převádět správně 0.0f na int// hodnota
alpha v float.
celý to mám založený na dvoubarevný masce , kde pokud je v masce bílá
nastavím v obrázku hodnotu na alpha.
Jako variantu k nastavování elementu v DataBufferu obrázku (ne Masky) bych
možná mohl nastavovat rastr aplha,
kterej získám z bimg.getAlphaRaster().
Za jakákoliv reakce předem díky

Petr Roubal


Odpovedet emailem