Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.10;
Скачать: CL | DM;

Вниз

про прозрачность в Image   Найти похожие ветки 

 
ded_di ©   (2002-05-31 13:07) [0]

Мне нужно было преобразовать битмап в параллелограм, МВо посоветовал PlgBlt, но пока я с ним разбирался, он заметил, что для 98 несапортед. Глядя на его ф-цию поворота написал я свою ф-цию преобразования


function TForm1.BmpPar(const B: TBitmap;fi:integer):TBitmap;
type
TRGBTripleArray = array[word] of TRGBTriple;
pRGBTripleArray = ^TRGBTripleArray;
var
ht,wd,newht,newwd,delta1,delta2,j,i:integer;
cfi,sfi: double;
sline1,sline2: pRGBTRipleArray;
BEGIN
sfi:=sin(degtorad(fi));
cfi:=cos(degtorad(fi));
ht:=b.height;
wd:=b.width;
delta1:=abs(round(ht*cfi/sfi));
newwd:=wd + delta1;
newht:=ht;
Result:=TBitmap.create;
Result.Width:=newwd;
Result.Height:=newht;
Result.Transparent:=true;
Result.PixelFormat:=pf24bit;

for j:=0 to newht-1 do begin
delta2:=delta1-abs(round((j+1)*cfi/sfi));
sline2 := Result.scanline[j];
sline1 := b.scanline[j];
for i:=wd-1 downto 0 do
sline2[i+delta2]:=sline1[i];
end;
end;

И теперь вопрос. Как сделать, чтоб углы, которые остались (куда картинка не попала) были прозрачными? Спасибо.


 
MBo ©   (2002-05-31 13:33) [1]

Как кусок картинки (в частности, параллелограмм) скопировать на канвас, я знаю, но к сожалению, у TChart - Canvas3D поддерживает лишь несколько операций стандартного canvas, и не получается. То же относится и к прозрачности. Могу лишь предложить делать прямоугольную картинку, руками рисуя на ней то, что закрывается, благо эта часть неподвижна


 
ded_di ©   (2002-05-31 13:46) [2]

Не понял. Можно подробней.



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

Текущий архив: 2002.06.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
3-30720
uncle_m16
2002-05-18 19:25
2002.06.10
Глюк


4-31048
DeMoN-777
2002-04-09 03:58
2002.06.10
Добавление mainmenu на чужую форму


1-30895
Voldemar
2002-05-29 21:21
2002.06.10
Вновь TreeView... Select по тексту или данным - как?


3-30737
maxim2
2002-05-17 11:38
2002.06.10
Проблема с DBGrid полностью не показывает данные в полях


8-30932
andey
2002-01-23 21:33
2002.06.10
Определение номера телефона