public override void DrawImage(int xDst, int yDst, Bitmap bitmap, int xSrc, int ySrc, int width, int height, ushort opacity) { var srcRect = new Sd.RectangleF(xSrc, ySrc, width, height); var dstRect = new Sd.RectangleF(xDst, yDst, width, height); Context.DrawImage(((Win32Bitmap) bitmap).NativeBitmap, dstRect, srcRect, Sd.GraphicsUnit.Pixel); }
public override void TileImage(int xDst, int yDst, Bitmap bitmap, int width, int height, ushort opacity) { }
public override void Scale9Image(int xDst, int yDst, int widthDst, int heightDst, Bitmap bitmap, int leftBorder, int topBorder, int rightBorder, int bottomBorder, ushort opacity) { var srcBitmap = ((Win32Bitmap) bitmap).NativeBitmap; int widthSrc = srcBitmap.Width; int heightSrc = srcBitmap.Height; if (widthDst >= leftBorder && heightDst >= topBorder) { int centerWidthSrc = widthSrc - (leftBorder + rightBorder); int centerHeightSrc = heightSrc - (topBorder + bottomBorder); int centerWidthDst = widthDst - (leftBorder + rightBorder); int centerHeightDst = heightDst - (topBorder + bottomBorder); //top-left //dst.left = xDst; //dst.top = yDst; //dst.right = dst.left + leftBorder - 1; //dst.bottom = dst.top + topBorder - 1; //src.left = 0; //src.top = 0; //src.right = src.left + leftBorder - 1; //src.bottom = src.top + topBorder - 1; var dst = new Sd.Rectangle(xDst, yDst, leftBorder, topBorder); var src = new Sd.Rectangle(0, 0, leftBorder, topBorder); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); //top-right if (widthDst > leftBorder) { //dst.left = xDst + widthDst - rightBorder; //dst.top = yDst; //dst.right = dst.left + rightBorder - 1; //dst.bottom = dst.top + topBorder - 1; //src.left = widthSrc - rightBorder; //src.top = 0; //src.right = src.left + rightBorder - 1; //src.bottom = src.top + topBorder - 1; dst = new Sd.Rectangle(xDst + widthDst - rightBorder, yDst, rightBorder, topBorder); src = new Sd.Rectangle(widthSrc - rightBorder, 0, rightBorder, topBorder); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } //bottom-left if (heightDst > topBorder) { //dst.left = xDst; //dst.top = yDst + heightDst - bottomBorder; //dst.right = dst.left + leftBorder - 1; //dst.bottom = dst.top + bottomBorder - 1; //src.left = 0; //src.top = heightSrc - bottomBorder; //src.right = src.left + leftBorder - 1; //src.bottom = src.top + bottomBorder - 1; dst = new Sd.Rectangle(xDst, yDst + heightDst - bottomBorder, leftBorder, bottomBorder); src = new Sd.Rectangle(0, heightSrc - bottomBorder, leftBorder, bottomBorder); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } //bottom-right if (widthDst > leftBorder && heightDst > topBorder) { //dst.left = xDst + widthDst - rightBorder; //dst.top = yDst + heightDst - bottomBorder; //dst.right = dst.left + rightBorder - 1; //dst.bottom = dst.top + bottomBorder - 1; //src.left = widthSrc - rightBorder; //src.top = heightSrc - bottomBorder; //src.right = src.left + rightBorder - 1; //src.bottom = src.top + bottomBorder - 1; dst = new Sd.Rectangle(xDst + widthDst - rightBorder, yDst + heightDst - bottomBorder, rightBorder, bottomBorder); src = new Sd.Rectangle(widthSrc - rightBorder, heightSrc - bottomBorder, rightBorder, bottomBorder); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } //left if (centerHeightDst > 0) { //dst.left = xDst; //dst.top = yDst + topBorder; //dst.right = dst.left + leftBorder - 1; //dst.bottom = dst.top + centerHeightDst - 1; //src.left = 0; //src.top = topBorder; //src.right = src.left + leftBorder - 1; //src.bottom = src.top + centerHeightSrc - 1; dst = new Sd.Rectangle(xDst, yDst + topBorder, leftBorder, centerHeightDst); src = new Sd.Rectangle(0, topBorder, leftBorder, centerHeightSrc); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } //top if (centerWidthDst > 0) { //dst.left = xDst + leftBorder; //dst.top = yDst; //dst.right = dst.left + centerWidthDst - 1; //dst.bottom = dst.top + topBorder - 1; //src.left = leftBorder; //src.top = 0; //src.right = src.left + centerWidthSrc - 1; //src.bottom = src.top + topBorder - 1; dst = new Sd.Rectangle(xDst + leftBorder, yDst, centerWidthDst, topBorder); src = new Sd.Rectangle(leftBorder, 0, centerWidthSrc, topBorder); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } //right if (widthDst > leftBorder && centerHeightDst > 0) { //dst.left = xDst + widthDst - rightBorder; //dst.top = yDst + topBorder; //dst.right = dst.left + rightBorder - 1; //dst.bottom = dst.top + centerHeightDst - 1; //src.left = widthSrc - rightBorder; //src.top = topBorder; //src.right = src.left + rightBorder - 1; //src.bottom = src.top + centerHeightSrc - 1; dst = new Sd.Rectangle(xDst + widthDst - rightBorder, yDst + topBorder, rightBorder, centerHeightDst); src = new Sd.Rectangle(widthSrc - rightBorder, topBorder, rightBorder, centerHeightSrc); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } //bottom if (centerWidthDst > 0 && heightDst > topBorder) { //dst.left = xDst + leftBorder; //dst.top = yDst + heightDst - bottomBorder; //dst.right = dst.left + centerWidthDst - 1; //dst.bottom = dst.top + bottomBorder - 1; //src.left = leftBorder; //src.top = heightSrc - bottomBorder; //src.right = src.left + centerWidthSrc - 1; //src.bottom = src.top + bottomBorder - 1; dst = new Sd.Rectangle(xDst + leftBorder, yDst + heightDst - bottomBorder, centerWidthDst, bottomBorder); src = new Sd.Rectangle(leftBorder, heightSrc - bottomBorder, centerWidthSrc, bottomBorder); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } //center if (centerWidthDst > 0 && centerHeightDst > 0) { //dst.left = xDst + leftBorder; //dst.top = yDst + topBorder; //dst.right = dst.left + centerWidthDst - 1; //dst.bottom = dst.top + centerHeightDst - 1; //src.left = leftBorder; //src.top = topBorder; //src.right = src.left + centerWidthSrc - 1; //src.bottom = src.top + centerHeightSrc - 1; dst = new Sd.Rectangle(xDst + leftBorder, yDst + topBorder, centerWidthDst, centerHeightDst); src = new Sd.Rectangle(leftBorder, topBorder, centerWidthSrc, centerHeightSrc); Context.DrawImage(srcBitmap, dst, src, Sd.GraphicsUnit.Pixel); } } }
public override void StretchImage(int xDst, int yDst, int widthDst, int heightDst, Bitmap bitmap, int xSrc, int ySrc, int widthSrc, int heightSrc, ushort opacity) { }
public override void RotateImage(int angle, int xDst, int yDst, Bitmap bitmap, int xSrc, int ySrc, int width, int height, ushort opacity) { }