2016-04-07 3 views
0

Я могу заполнить прямоугольник с изображением и я применить маску на верхней части изображения с помощью этого кодаWin2D рисовать одно изображение

args.DrawingSession.FillRectangle(rect, imgRnd, mask); 

мне нужно применить некоторые преобразования на это изображение, я» я могу сделать это без проблем, но у меня возникла странная проблема, последний пиксель повторяется.

я использовал

imgRnd.ExtendX = CanvasEdgeBehavior.Wrap; 
imgRnd.ExtendY = CanvasEdgeBehavior.Wrap; 

и изображение повторяется непрерывно.

Мой вопрос: есть способ нарисовать один раз при отключении изображения и ExtendX и ExtendY?

ответ

1

FillRectangle всегда будет заполнять все пиксели в указанном прямоугольнике. Переменная переходов по фронту контролирует, какое значение они заполняются, если изображение расположено так, что оно не полностью покрывает рисованный прямоугольник.

Как именно вы преобразуете изображение? Можете ли вы изменить это, чтобы преобразовать сам прямоугольник, чтобы вы не пытались заполнить пиксели, которые не покрыты изображением?

Другой вариант заключается в использовании графических эффектов (Microsoft.Graphics.Canvas.Effects пространства имен), которые дают гораздо более точный контроль, чем FillRectangle над тем, как несколько изображений преобразуются в сочетании, и т.д.

Смежные вопросы