Показать сообщение отдельно
Старый 02.07.2008, 03:11   #12
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_alpha: Прозрачность картинок

Я уже сделал по-другому. Ошибки валидации теперь нет.
Правда и прозрачности я тоже не увидел

import javax.microedition.lcdui.Image;

class Lib_alpha
{
    public static int mask;
    
    public static int getalphalevels()
    {
        return FW.fw.display.numAlphaLevels();
    }
    
    public static void setmask(int i)
    {
        switch (i)
        {
            case 0: {mask = 0x00000000; break;}
            case 1: {mask = 0x11000000; break;}
            case 2: {mask = 0x22000000; break;}
            case 3: {mask = 0x33000000; break;}
            case 4: {mask = 0x44000000; break;}
            case 5: {mask = 0x55000000; break;}
            case 6: {mask = 0x66000000; break;}
            case 7: {mask = 0x77000000; break;}
            case 8: {mask = 0x88000000; break;}
            case 9: {mask = 0x99000000; break;}
            case 10: {mask = 0xAA000000; break;}
            case 11: {mask = 0xBB000000; break;}
            case 12: {mask = 0xCC000000; break;}
            case 13: {mask = 0xDD000000; break;}
            case 14: {mask = 0xEE000000; break;}
            case 15: {mask = 0xFF000000; break;}
        }
    }
    
    public static Image opaquepicture(Image im)
    {
        int buff[] = new int[im.getWidth() * im.getHeight()];
        im.getRGB(buff, 0, im.getWidth(), 0, 0, im.getWidth(), im.getHeight());
        for(int i=0; i < buff.length; i++) buff[i] = buff[i] | mask;
        Image im2 = Image.createRGBImage(buff, im.getWidth(), im.getHeight(), true);
        return im2;
    }
}
Проверка проводилась так:

Program AlphaTest;
Uses	alpha;
Var	im: image;
		i: integer;
Begin
	im:=LoadImage('/kcalc.png');
	DrawText('Уровней: '+GetAlphaLevels, 5, 5);
	for i:=0 to 15 do
	begin
		SetColor(255,255,255); FillRect(0,0,200,200); SetColor(0,0,0);
		SetMask(i);
		DrawImage(OpaquePicture(im),5,5);
		DrawImage(OpaquePicture(im),25,25);
		DrawText(''+i,0,0);
		Repaint; Delay(1000);
	end
End.
Вложения
Тип файла: zip Lib_alpha.zip (836 байт, 639 просмотров)
(Offline)
 
Ответить с цитированием