Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо