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

GDI+ и изображения   Найти похожие ветки 

← →
kblc   (2008-01-26 00:14) [0]

Уважаемые мастера,
у меня к вам вопрос...

есть возможность вывести изображение (TGPBitmap, TGPImage)  внутри произвольного региона?

т.е. конкретно мне нужно сделать вот что:
взять изображение (Его координаты (0,0), (10,0), (0,12),(10,12)) 10pix Х 12pix и натянуть его на вот такой регион: (0,0),(10,4),(0,12),(10,8).


← →
antonn (work)   (2008-01-26 09:50) [1]

поищи "афинное преобразование" и "перспективное преобразование". ссылку бы дал, если бы помнил.


← →
antonn (work)   (2008-01-26 09:52) [2]

возможно в самом ГДИ+ уже есть такая фича)


← →
kblc   (2008-01-26 15:32) [3]

есть конечно вариант
TGPGraphics.FillPath(Brush:TGPBrush; Path:TGPGraphicsPath);
где Brush: TGPTextureBrush...

но(!) это тоже самое, что и установить область отрисовки (Clip) и рисовать картинку.

((

antonn (work)
афинное преобразование - это ж не то, или я не прав?

а вот по поводу перспективного преобразования я ничего не нашёл.. (


← →
antonn ©   (2008-01-26 21:23) [4]

вот пример, как вписать в произвольный выпуклый четырехугольник:
http://desksoft.ru/index.php?forum=13&th=67


← →
kblc   (2008-01-27 11:17) [5]

antonn,
Благодарю за помощь. Но я хотел попробовать это сделать средствами GDI+.

Если в этой библиотеке нет такой возможности, то я, конечно, поспользуюсь вашим ответом.


← →
гость   (2008-01-28 18:01) [6]

ответ на вопрос здесь

procedure Tboard.mydraw;
var
imageboardgraphics : TGPGraphics;
begin
 imageboardgraphics := TGPGraphics.Create(imageboard.Picture.Bitmap.Canvas.handle);
 imageboardgraphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
 imageboardgraphics.DrawImage(
                              Bmp,
                              imageboardrect,
                              0, 0,bmp.getwidth,bmp.getheight, UnitPixel
                              );

  imageboardgraphics.Free;

 tform(tpanel(owner).GetParentComponent).Refresh;
 end;


← →
kblc ©   (2008-01-29 06:41) [7]

А где тут задаётся произвольный регион, если при
imageboardgraphics.DrawImage(
                             Bmp,
                             imageboardrect,
                             0, 0,bmp.getwidth,bmp.getheight, UnitPixel
                             );

0 - Left,
0 - Top,
bmp.getwidth - Width
bmp.getheight - Height

Где же задание региона, внутрь которого и нужно выводить графику?


← →
MultIfleX   (2008-01-29 11:55) [8]

есть возможность вывести изображение (TGPBitmap, TGPImage)  внутри произвольного региона?

ответ: да есть, смотри стандартные примеры идущие с GDI+ для delphi, там есть пример вывода в произвольный четырёхугольник.


← →
capkoh ©   (2008-01-30 21:04) [9]

Насколько я понял, речь идёт о выводе прямоугольника в трапецию.
Но в GDI+ предусмотрено рисование только в параллелограммы, вроде...


← →
Рамиль ©   (2008-01-31 09:58) [10]


> capkoh ©   (30.01.08 21:04) [9]

Можно сделать любую афинную трансформацию.


← →
cerber   (2008-02-05 22:17) [11]

А Директ Х никто не читал?



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

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



Память: 0.47 MB
Время: 0.01 c
15-1256399840
_
2009-10-24 19:57
2009.12.27
Психотип. Кто Вы?


15-1256822775
Читинец
2009-10-29 16:26
2009.12.27
Мелкософт наехал не безработного.


3-1232343690
pavel_guzhanov
2009-01-19 08:41
2009.12.27
Можно ли проиндексировать поле в представлении?


2-1257851009
Andrewtitoff
2009-11-10 14:03
2009.12.27
ADOTable позиция


2-1257412157
zorik
2009-11-05 12:09
2009.12.27
xml отчеты word




   Наверх