![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GDI+ и изображения [D7, WinXP]
kblc © (2008-01-26 00:14:00)Уважаемые мастера,
у меня к вам вопрос...
есть возможность вывести изображение (TGPBitmap, TGPImage) внутри произвольного региона?
т.е. конкретно мне нужно сделать вот что:
взять изображение (Его координаты (0,0), (10,0), (0,12),(10,12)) 10pix Х 12pix и натянуть его на вот такой регион: (0,0),(10,4),(0,12),(10,8).
cerber (2008-02-05 22:17:00) [1]А Директ Х никто не читал?
Рамиль (2008-01-31 09:58:00) [2]
> capkoh © (30.01.08 21:04) [9]
Можно сделать любую афинную трансформацию.
capkoh (2008-01-30 21:04:00) [3]Насколько я понял, речь идёт о выводе прямоугольника в трапецию.
Но в GDI+ предусмотрено рисование только в параллелограммы, вроде...
MultIfleX (2008-01-29 11:55:00) [4]есть возможность вывести изображение (TGPBitmap, TGPImage) внутри произвольного региона?
ответ: да есть, смотри стандартные примеры идущие с GDI+ для delphi, там есть пример вывода в произвольный четырёхугольник.
kblc (2008-01-29 06:41:00) [5]А где тут задаётся произвольный регион, если при
imageboardgraphics.DrawImage(
Bmp,
imageboardrect,
0, 0,bmp.getwidth,bmp.getheight, UnitPixel
);
0 - Left,
0 - Top,
bmp.getwidth - Width
bmp.getheight - Height
Где же задание региона, внутрь которого и нужно выводить графику?
гость (2008-01-28 18:01:00) [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-27 11:17:00) [7]antonn,
Благодарю за помощь. Но я хотел попробовать это сделать средствами GDI+.
Если в этой библиотеке нет такой возможности, то я, конечно, поспользуюсь вашим ответом.
antonn (2008-01-26 21:23:00) [8]вот пример, как вписать в произвольный выпуклый четырехугольник:
http://desksoft.ru/index.php?forum=13&th=67
kblc (2008-01-26 15:32:00) [9]есть конечно вариант
TGPGraphics.FillPath(Brush:TGPBrush; Path:TGPGraphicsPath);
где Brush: TGPTextureBrush...
но(!) это тоже самое, что и установить область отрисовки (Clip) и рисовать картинку.
((
antonn (work)
афинное преобразование - это ж не то, или я не прав?
а вот по поводу перспективного преобразования я ничего не нашёл.. (
antonn (work) (2008-01-26 09:52:00) [10]возможно в самом ГДИ+ уже есть такая фича)
antonn (work) (2008-01-26 09:50:00) [11]поищи "афинное преобразование" и "перспективное преобразование". ссылку бы дал, если бы помнил.