Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.27;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1256503910
Kolan
2009-10-25 23:51
2009.12.27
Помните как пользоваться советскими магнитофонами? (тест)


15-1256560905
Knight
2009-10-26 15:41
2009.12.27
Вопрос на засыпку по TSocketServer+браузер


15-1256758600
DillerXX
2009-10-28 22:36
2009.12.27
Бинокль


15-1256553697
Урсулапов_
2009-10-26 13:41
2009.12.27
Свисток арбитра в руках болельщика


2-1257856549
Kolan
2009-11-10 15:35
2009.12.27
Самодельная отрисовка мигает