Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Вниз

Создание кнопки с эффектом стекла...   Найти похожие ветки 

 
Crazzy Jazzy   (2005-04-12 15:23) [0]

Здраствуйте!

Ну наподобии как у кнопок или элементов меню в MacOS...

Спасибо!


 
XProger ©   (2005-04-13 14:10) [1]

Image1.LoadFromFile("...");


 
clampo ©   (2005-04-13 22:24) [2]

Photoshop 8.0 - решит тови проблемы


 
thaddy   (2005-04-14 00:38) [3]

Alpha blending with the alpha value put through an algorithm similar (equal) to gradient


 
programania ©   (2005-04-14 21:21) [4]

PhotoShopом пусть рисуют кто не может программы писать
А программой рисовать лучше,
потому что код меньше места занимает чем картинка,
код один для разных размеров, формы, цветов,
можно сделать полупрозрачность и антиалиазинг с разным фоном,
можно получить бесконечно много вариантов меняя
случайно несколько параметров,  можно это делать в timer
чтоб все сверкало и переливалось.
Для примера кнопка типа стекла или воды
А кто сможет красивее?
пример: knopka(image1,$FF9080);

PROCEDURE knopka(i:tImage;cw:integer);
type
tm=array[0..40{макс.высота},0..120{ширина},1..3] of byte;
var
z:array[1..3] of integer;
cr,r,v,q,xx,yy,j,h4,h6,h8,x,y,h,w:integer;
yk: boolean;
m,f :^tm;
begin
w:=i.width;   if w>120 then w:=120;
h:=i.height;  if h>40  then h:=40;
getMem(m,sizeOf(tm));getMem(f,sizeOf(tm));

with i.canvas do begin
i.transparent:=true;
i.picture.bitmap.pixelformat:=pf24bit;

//сохранение фона
for y:=0 to h-1 do move(i.picture.bitmap.ScanLine[y]^,f^[y,0,1],w*3);
//цвет рамки потемнее
cr:=RGB(getRvalue(cw) div 16,getGvalue(cw) div 16,getBvalue(cw) div 16);
pen.color:=cr;
brush.color:=pen.color;
fillRect(rect(0,0,w,h));
brush.color:=cw;
pen.width:=3;
roundRect(1,1,w-1,h-1,16,16);

for y:=0 to h-1 do move(i.picture.bitmap.ScanLine[y]^,m^[y,0,1],w*3);
//блик
h6:=h div 6; h4:=h div 4; h8:=h div 8;
for x:=h4+2 to w-h4-2 do
for j:=1 to 3 do begin
for v:=0 to 3 do begin
//сверху
 r:=m^[h6+v+1,x,j]+(4-v)*44; if r>=$FF then r:=$FE;
 m^[h6+v+1,x,j]:=r;
//снизу
 if v>2 then m^[h-h6-v+1,x,j]:=$FE;
end;
end;

//размытие
for y:=0 to h-1 do begin
for x:=0 to w-1 do
if ((y<>h6+1)and(y<>h6+2))or(x<=h4+5)or(x>=w-h4-5) then
if rgb(m^[y,x,3],m^[y,x,2],m^[y,x,1])=cr then
 for j:=1 to 3 do m^[y,x,j]:=f^[y,x,j]
 else begin
   q:=0; z[1]:=0; z[2]:=0; z[3]:=0;
   for yy:=y-2 to y+2 do
   for xx:=x-2 to x+2 do
   if (yy>=0)and(yy<h) and (xx>=0)and(xx<w) then begin
     for j:=1 to 3 do inc(z[j],m^[yy,xx,j]);
     inc(q);
   end;
   for j:=1 to 3 do m^[y,x,j]:=z[j] div q;
 end;
 move(m^[y,0,1],i.picture.bitmap.ScanLine[y]^,w*3);
end;
freeMem(m);freeMem(f);
end;
end;



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.13 c
1-1122469493
Vasian
2005-07-27 17:04
2005.08.21
как правильно создать виртуальную канву (Tcanvas)?


1-1122847553
wp2
2005-08-01 02:05
2005.08.21
Очередная ошибка точности???!!!


3-1120468833
kyn66
2005-07-04 13:20
2005.08.21
Как объеденить метод?


14-1122466533
Lexer
2005-07-27 16:15
2005.08.21
Кляп удаленному компьютеру


3-1121170783
evvcom
2005-07-12 16:19
2005.08.21
Работает ли конструкция case через dblink?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский