public void DrawImage(UnsafeBitmap picture, int X, int Y, int srcWidth, int srcHeight) { PixelData *data; Color color; for (int W = 0; W < srcWidth; W++) { for (int H = 0; H < srcHeight; H++) { if (X + W < 0 || X + W > picture.WorkingPicture.Width || Y + H < 0 || Y + H > picture.WorkingPicture.Height) { continue; } color = picture.GetPixel(X + W, Y + H); data = (PixelData *)(StartByte + (H)*PictureWidth + (W)*sizeof(PixelData)); data->Alpha = color.A; data->Red = color.R; data->Green = color.G; data->Blue = color.B; } } }
public void DrawImage(UnsafeBitmap picture, Point Target, Rectangle Source) { PixelData *data; Color color; for (int W = 0; W < Source.Width; W++) { for (int H = 0; H < Source.Height; H++) { if (Source.X + W < 0 || Source.X + W > picture.WorkingPicture.Width || Source.Y + H < 0 || Source.Y + H > picture.WorkingPicture.Height || Target.X + W < 0 || Target.Y + H < 0) { continue; } color = picture.GetPixel(Source.X + W, Source.Y + H); data = (PixelData *)(StartByte + (Target.Y + H) * PictureWidth + (Target.X + W) * sizeof(PixelData)); data->Alpha = color.A; data->Red = color.R; data->Green = color.G; data->Blue = color.B; } } }