-
Уважаемые мастера, у меня к вам вопрос...
есть возможность вывести изображение (TGPBitmap, TGPImage) внутри произвольного региона?
т.е. конкретно мне нужно сделать вот что: взять изображение (Его координаты (0,0), (10,0), (0,12),(10,12)) 10pix Х 12pix и натянуть его на вот такой регион: (0,0),(10,4),(0,12),(10,8).
-
поищи "афинное преобразование" и "перспективное преобразование". ссылку бы дал, если бы помнил.
-
возможно в самом ГДИ+ уже есть такая фича)
-
есть конечно вариант TGPGraphics.FillPath(Brush:TGPBrush; Path:TGPGraphicsPath); где Brush: TGPTextureBrush...
но(!) это тоже самое, что и установить область отрисовки (Clip) и рисовать картинку.
((
antonn (work) афинное преобразование - это ж не то, или я не прав?
а вот по поводу перспективного преобразования я ничего не нашёл.. (
-
-
antonn, Благодарю за помощь. Но я хотел попробовать это сделать средствами GDI+.
Если в этой библиотеке нет такой возможности, то я, конечно, поспользуюсь вашим ответом.
-
ответ на вопрос здесь
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;
-
А где тут задаётся произвольный регион, если при imageboardgraphics.DrawImage( Bmp, imageboardrect, 0, 0,bmp.getwidth,bmp.getheight, UnitPixel );
0 - Left, 0 - Top, bmp.getwidth - Width bmp.getheight - Height
Где же задание региона, внутрь которого и нужно выводить графику?
-
есть возможность вывести изображение (TGPBitmap, TGPImage) внутри произвольного региона?
ответ: да есть, смотри стандартные примеры идущие с GDI+ для delphi, там есть пример вывода в произвольный четырёхугольник.
-
Насколько я понял, речь идёт о выводе прямоугольника в трапецию. Но в GDI+ предусмотрено рисование только в параллелограммы, вроде...
-
> capkoh © (30.01.08 21:04) [9]
Можно сделать любую афинную трансформацию.
-
А Директ Х никто не читал?
|