forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Градиенты в канвасе (http://forum.boolean.name/showthread.php?t=14244)

kizup 16.02.2011 09:58

Градиенты в канвасе
 
Всем привет!
Тут вот вопрос появился, никто не пытался отрисовать градиент с помощью МП, не подключая изображения в ресы программы. Градиенты наподобие таких, которые ща во всех мобильных аськах стоят. Хотелось бы тоже самому иметь красивые софткейбары и статусбары.
Если кто что слышал по этому поводу - поделитесь плиз)))

cherepets 16.02.2011 12:38

Ответ: Градиенты в канвасе
 
Вложений: 1
Держи либу :)

Функция одна:
drawgradient(startColor,endColor,x,y,width,height: integer);

Пример кода:
PHP код:

color1:=16103865;
color2:=14957885;
drawgradient(color1,color2,0,0,getwidth,getheight div 2);
drawgradient(color2,color1,0,getheight div 2,getwidth,getheight div 2);
repaintdelay(10000); 


Trazzy 16.02.2011 13:22

Ответ: Градиенты в канвасе
 
еще подскажи как цвета получать

cherepets 16.02.2011 13:57

Ответ: Градиенты в канвасе
 
В калькуляторе. Выбираем 16ричную систему счисления, набираем код цвета (например, FF0000 - красный) и переводим его в десятеричную.

Phantom 16.02.2011 21:02

Ответ: Градиенты в канвасе
 
0xff0000 не?

kizup 17.02.2011 10:29

Ответ: Градиенты в канвасе
 
Спасибо огромное!!! Очень полезная вещь!!!!:cool:
---------------------------------------------------
Эмуляторы midpX и WTK ругаются на твою либу, одному KEmulator'у всё по барабану
PHP код:

Running with storage root SonyEricsson_JP8_240x320_Emu
Running with locale
Russian_Russia.1251
Error verifying method Lib_gradient drawgradient
(IIIIII)V
Approximate bytecode offset 86
Inconsistent or missing stackmap at target
Execution completed
.
4467942 bytecodes executed
379 thread switches
ALERT
java/lang/VerifyErrorLib_gradient.
1772 classes in the system (including system classes)
0 dynamic objects allocated (0 bytes)
0 garbage collections (0 bytes collected)
Execution completed


kizup 17.02.2011 14:46

Ответ: Градиенты в канвасе
 
Ещё вопросец, а как эту процедуру drawgradient приравнять к изображению? Дабы использовать как курсор в либе menu32? Никто не знает?

cherepets 17.02.2011 15:21

Ответ: Градиенты в канвасе
 
Вложений: 1
Ээ.. попробуй либу для перенаправления вывода на картинку или скринь с помощью imagefromscreen.

Про причину ругани эмулей не знаю.. Ща буду пробовать исправить
__________________________________________________ _________________

Помучился, теперь в ВТК работает. Но выглядит он там конечно не для слабонервных..

kizup 17.02.2011 15:35

Ответ: Градиенты в канвасе
 
Вложений: 1
В общем я сам перекомпилировал, все ништяк работает))))

Trazzy 29.03.2011 05:57

Ответ: Градиенты в канвасе
 
Вложений: 1
Недавно мне самому потребовался градиент, только вот вертикальный..
Влез в яву (где я не спец) и переделал либу. Может кому пригодится...:)

kizup 10.04.2011 22:22

Ответ: Градиенты в канвасе
 
Четкая библиотека)) Спасибо)):)

Trazzy 11.04.2011 06:51

Ответ: Градиенты в канвасе
 
Пожалуйста))

PassCall 13.04.2011 11:33

Ответ: Градиенты в канвасе
 
Чтото типо градиента. Хотя это больше напоминает затухающий свет.
Градиент пока перетекает из белого в черный.
Долго обрабатывается, но все таки ;)

Код:

program radgrad;
VAR
i,j,temp,a,b:integer;
temp_real:real;

BEGIN
setcolor (0,0,0);
fillrect (0,0,240,320);

for i:=1 to 100 do
for j:=1 to 100 do
begin
a:=50-i;
b:=50-j;
temp_real:=a*a+b*b;
temp_real:=sqrt(temp_real)
temp_real:=1-temp_real/(temp_real+50.0)
temp_real:=255.0*temp_real;
a:=trunc(temp_real);
setcolor (a,a,a);
plot (j,i)
end;

repaint;
delay (2012);

end.




//Надеюсь все правильно написал

PassCall 13.04.2011 11:59

Ответ: Градиенты в канвасе
 
Еще наподобие градиента.
В этот раз он напоминает внешний вид цветовой палитры в фотошопе.

Код:

program grad2;
VAR
i,j,a,b,c:integer;
temp_real:real;
begin
        for i:=1 to 100 do
        for j:=1 to 100 do
        begin
        temp_real:=2.55*i;
        a:=trunc(temp_real);
        temp_real:=255-2.55*i;
        b:=trunc(temp_real);
        temp_real:=2.55*j;
        c:=trunc(temp_real);
        setcolor (a,b,c);
        plot(j,i);
        end;
        repaint;
        delay (2012);
end.


im_zorg 07.05.2011 21:39

Ответ: Градиенты в канвасе
 
Спасибо 2Fake


Часовой пояс GMT +4, время: 11:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot