Вниз
Скачать: CL | DM;

Два вопроса про TImage   Найти похожие ветки 

← →
Begin ©   (2002-09-25 00:48) [0]

1. Как можно повернуть содержимое TImage (или его самого) на определенный градус ??? (искал по FAQ не нашел... Плохо, вероятно, искал... :)

2. Можно ли заставить некий битмап, лежащий на форме, стать прозрачным в черных точках и полупозрачным в белых ??? Без использования DirectDraw/Show ???


← →
Evgeny ©   (2002-09-25 05:09) [1]

Поищи по нику MBo. Он на такие вопросы уже неоднократно отвечал.


← →
MBo ©   (2002-09-25 07:01) [2]

//только для 24-битных
//при повороте на 90*n градусов возможны погрешности
//из-за округления, в таких случаяъ надо использовать
//другие методы (они проще)


function BmpRot(const B: TBitmap;fi:integer):TBitmap;
type
TRGBTripleArray = array[word] of TRGBTriple;
pRGBTripleArray = ^TRGBTripleArray;
var
x0,y0,i,j,x1,y1,x11,y11,x2,y2:integer;
ht,wd,newht,newwd:integer;
cfi,sfi: double;
sline1,sline2: pRGBTRipleArray;
BEGIN
sfi:=sin(degtorad(fi));
cfi:=cos(degtorad(fi));
ht:=b.height;
wd:=b.width;
newwd:=abs(round(ht*sfi))+abs(round(wd*cfi));
newht:=abs(round(wd*sfi))+abs(round(ht*cfi));
Result:=TBitmap.create;
Result.Width:=newwd;
Result.Height:=newht;
Result.PixelFormat:=pf24bit;
x0:=wd div 2;
y0:=ht div 2;
for j :=newht-1 downto 0 do begin
sline2 := Result.scanline[j];
y1:= 2*(j-(newht-ht) div 2 -y0);
for i := newwd-1 downto 0 do begin
x1:=2*(i-(newwd-wd) div 2 -x0);
x2 :=round(x1 * cfi - y1 * sfi);
y2 :=round(x1 * sfi + y1 * cfi);
x11:=x2 div 2 +x0;
y11:=y2 div 2 +y0;
if (x11>=0)and(x11<wd)and(y11>=0)and(y11<ht) then begin
sline1 := b.scanline[y11];
sline2[i] := sline1[x11];
end;
end;
end;
end;


← →
Begin ©   (2002-09-29 02:31) [3]

Сеньк большой .... :)

А полупрозрачность, как я понимаю, нереализуема ???? :)


← →
MBo ©   (2002-09-29 08:19) [4]

Реализуема.


← →
VID ©   (2002-09-29 11:43) [5]

to Begin : посмотри в ubpfd, может найдёшь чего подходящего...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-31822
Эрик
2002-09-27 17:30
2002.10.10
У кого есть Delphi 6 servise pack 2?


1-31767
AlexT1000
2002-10-01 16:07
2002.10.10
Как рисовать векторные объекты но с прозрачностью и градиентом?


3-31635
Борис
2002-09-19 08:21
2002.10.10
Помогите обратится к таблице с паролем через TQuery


1-31729
diMAN
2002-09-27 18:16
2002.10.10
Свой обработчик для кнопки


1-31716
Осирис
2002-10-01 11:14
2002.10.10
TNotifyIconData




   Наверх