System.Drawing.Graphics.DrawImage C# (CSharp) Method

DrawImage() public method

Draws the specified portion of the specified Image at the specified location and with the specified size. The srcRect parameter specifies a rectangular portion of the image object to draw. This portion is scaled up or down (in the case where source rectangle overruns the bounds of the image) to fit inside the rectangle specified by the destRect parameter.
public DrawImage ( Image image, RectangleF destRect, RectangleF srcRect, GraphicsUnit srcUnit ) : void
image Image Image.
destRect RectangleF Destination rect.
srcRect RectangleF Source rect.
srcUnit GraphicsUnit Source unit.
return void
        public void DrawImage(Image image, RectangleF destRect, RectangleF srcRect, GraphicsUnit srcUnit)
        {
            if (image == null)
                throw new ArgumentNullException ("image");

            var srcRect1 = srcRect;

            // If the source units are not the same we need to convert them
            // The reason we check for Pixel here is that our graphics already has the Pixel's baked into the model view transform
            if (srcUnit != graphicsUnit && srcUnit != GraphicsUnit.Pixel)
            {
                ConversionHelpers.GraphicsUnitConversion (srcUnit, graphicsUnit, image.HorizontalResolution, image.VerticalResolution,  ref srcRect1);
            }

            // Obtain the subImage
            var subImage = image.NativeCGImage.WithImageInRect (srcRect1. ToCGRect ());

            // If we do not have anything to draw then we exit here
            if (subImage.Width == 0 || subImage.Height == 0)
                return;

            var transform = image.imageTransform;
            // Reset our height on the transform to account for subImage
            transform.y0 = subImage.Height;

            // Make sure we scale the image in case the source rectangle
            // overruns our subimage bouncs width and/or height
            float scaleX = subImage.Width/srcRect1.Width;
            float scaleY = subImage.Height/srcRect1.Height;
            transform.Scale (scaleX, scaleY);

            // Now draw our image
            DrawImage (destRect, subImage, transform);
        }

Same methods

Graphics::DrawImage ( Image image, Point destPoints ) : void
Graphics::DrawImage ( Image image, Point destPoints, Rectangle srcRect, GraphicsUnit srcUnit ) : void
Graphics::DrawImage ( Image image, Point destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr ) : void
Graphics::DrawImage ( Image image, Point destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, DrawImageAbort callback ) : void
Graphics::DrawImage ( Image image, Point destPoints, Rectangle srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, DrawImageAbort callback, int callbackData ) : void
Graphics::DrawImage ( Image image, PointF point ) : void
Graphics::DrawImage ( Image image, PointF destPoints, RectangleF srcRect, GraphicsUnit srcUnit ) : void
Graphics::DrawImage ( Image image, PointF destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr ) : void
Graphics::DrawImage ( Image image, PointF destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, DrawImageAbort callback ) : void
Graphics::DrawImage ( Image image, PointF destPoints, RectangleF srcRect, GraphicsUnit srcUnit, ImageAttributes imageAttr, DrawImageAbort callback, int callbackData ) : void
Graphics::DrawImage ( Image image, Rectangle rect ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, Rectangle srcRect, GraphicsUnit srcUnit ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, DrawImageAbort callback ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, DrawImageAbort callback, IntPtr callbackData ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttr, DrawImageAbort callback ) : void
Graphics::DrawImage ( Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit, ImageAttributes imageAttrs, DrawImageAbort callback, IntPtr callbackData ) : void
Graphics::DrawImage ( Image image, RectangleF rect ) : void
Graphics::DrawImage ( Image image, float x, float y ) : void
Graphics::DrawImage ( Image image, float x, float y, RectangleF srcRect, GraphicsUnit srcUnit ) : void
Graphics::DrawImage ( Image image, float x, float y, float width, float height ) : void
Graphics::DrawImage ( Image image, int x, int y ) : void
Graphics::DrawImage ( Image image, int x, int y, Rectangle srcRect, GraphicsUnit srcUnit ) : void
Graphics::DrawImage ( Image image, int x, int y, int width, int height ) : void
Graphics::DrawImage ( RectangleF rect, CGImage image, CGAffineTransform transform ) : void

Usage Example

Example #1
0
 public void _drawTabHeader(Graphics nGraphics, Font nFont, Rectangle nRectangle)
 {
     int width_ = nRectangle.Height - 2;
     switch (mSideTabStatus)
     {
         case SideTabStatus_.mNormal_:
             ControlPaint.DrawBorder3D(nGraphics, nRectangle, Border3DStyle.RaisedInner);
             nGraphics.DrawImage(mSideTabImage, nRectangle.X + 1, nRectangle.Y + 1, width_, width_);
             nGraphics.DrawString(mSideTabName, nFont, SystemBrushes.ControlText, new PointF(nRectangle.X + width_ + 2, nRectangle.Y + 2));
             break;
         case SideTabStatus_.mSelected_:
             ControlPaint.DrawBorder3D(nGraphics, nRectangle, Border3DStyle.Sunken);
             nGraphics.DrawImage(mSideTabImage, nRectangle.X + 1, nRectangle.Y + 1, width_, width_);
             nGraphics.DrawString(mSideTabName, nFont, SystemBrushes.ControlText, new PointF(nRectangle.X + width_ + 2, nRectangle.Y + 2));
             break;
         case SideTabStatus_.mDragged_:
             ControlPaint.DrawBorder3D(nGraphics, nRectangle, Border3DStyle.RaisedInner);
             nRectangle.X += 1;
             nRectangle.Y += 1;
             nRectangle.Width -= 2;
             nRectangle.Height -= 2;
             nGraphics.FillRectangle(SystemBrushes.ControlDarkDark, nRectangle);
             nGraphics.DrawString(mSideTabName, nFont, SystemBrushes.HighlightText, new PointF(nRectangle.X + width_ , nRectangle.Y));
             break;
     }
 }
All Usage Examples Of System.Drawing.Graphics::DrawImage