Главная страница
    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.039 c
11-1105726128
chum
2005-01-14 21:08
2005.08.21
Работа со строками


14-1122465564
ПЛОВ
2005-07-27 15:59
2005.08.21
Вопрос по шахматам


1-1122865029
Lexa
2005-08-01 06:57
2005.08.21
Ошибка при работе со строковыми переменными?


14-1122840778
Cerberus
2005-08-01 00:12
2005.08.21
Поиск


4-1119683912
Grief
2005-06-25 11:18
2005.08.21
как нарисовать Cursor на DC?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский