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

Вниз

Два вопроса про 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 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-31899
Zhlog
2002-09-30 12:56
2002.10.10
что-то типа RichEdit


14-31972
Карлсон
2002-09-13 20:55
2002.10.10
Какую веб камеру купить?


3-31640
onix
2002-09-18 13:27
2002.10.10
Пронумеровать записи в DataSet e.


3-31641
Виталий Панасенко
2002-09-18 14:50
2002.10.10
Почему глючит Дятел


3-31639
pwlusa
2002-09-19 13:03
2002.10.10
Как получить данные в строке





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