Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Graphics.DrawImage, méthode (Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics.DrawImageAbort)

Dessine la partie mentionnée du Image spécifié à l'emplacement indiqué avec la taille précisée.

Espace de noms :  System.Drawing
Assembly :  System.Drawing (dans System.Drawing.dll)

public void DrawImage(
	Image image,
	Point[] destPoints,
	Rectangle srcRect,
	GraphicsUnit srcUnit,
	ImageAttributes imageAttr,
	Graphics.DrawImageAbort callback
)

Paramètres

image
Type : System.Drawing.Image
Image à dessiner.
destPoints
Type : System.Drawing.Point[]
Tableau de trois structures PointF qui définissent un parallélogramme.
srcRect
Type : System.Drawing.Rectangle
Structure Rectangle qui spécifie la partie de l'objet image à dessiner.
srcUnit
Type : System.Drawing.GraphicsUnit
Membre de l'énumération GraphicsUnit qui spécifie les unités de mesure utilisées par le paramètre srcRect.
imageAttr
Type : System.Drawing.Imaging.ImageAttributes
ImageAttributes qui spécifie des informations de recoloriage et de gamma pour l'objet image.
callback
Type : System.Drawing.Graphics.DrawImageAbort
Délégué Graphics.DrawImageAbort qui spécifie une méthode à appeler lors du dessin de l'image. Cette méthode est fréquemment appelée pour vérifier si l'exécution de la méthode DrawImage doit être arrêtée selon des critères déterminés par l'application.

ExceptionCondition
ArgumentNullException

image a la valeur null.

Le paramètre destPoints spécifie trois points d'un parallélogramme. Les trois structures PointF représentent les angles supérieur gauche, supérieur droit et inférieur gauche du parallélogramme. Le quatrième point est extrapolé à partir des trois premiers pour former un parallélogramme.

Le paramètre srcRect spécifie une partie rectangulaire de l'objet image à dessiner. Cette partie est ajustée et inclinée de manière à tenir à l'intérieur du parallélogramme spécifié par le paramètre destPoints.

Cette surcharge avec le paramètre callback permet d'arrêter le dessin d'une image qui a commencé selon des critères déterminés par l'application. Si, par exemple, une application commence à dessiner une image grand format et si l'utilisateur fait défiler l'image en dehors de l'écran, l'application arrête alors le dessin.

L'exemple de code suivant est destiné à être utilisé avec Windows Forms et nécessite PaintEventArgse, qui est un paramètre du gestionnaire d'événements Paint. Le code commence par définir une méthode de rappel pour le délégué Graphics.DrawImageAbort ; la définition est simpliste et se contente de vérifier si la méthode DrawImage l'appelle avec un paramètre callBackData null. Le corps de l'exemple permet d'effectuer les opérations suivantes :

  • Crée une instance de la méthode de rappel Graphics.DrawImageAbort.

  • Crée une image à partir d'un fichier JPEG, SampImag.jpg, dans le dossier de l'exemple.

  • Crée des points qui définissent un parallélogramme dans lequel dessiner l'image.

  • Crée un rectangle pour sélectionner la partie de l'image à dessiner.

  • Définit le pixel comme unité de dessin graphique.

  • Dessine l'image d'origine à l'écran.

  • Crée un autre parallélogramme dans lequel dessiner une image ajustée.

  • Crée et définit les attributs de l'image ajustée pour obtenir une valeur de gamma supérieure à la normale.

  • Dessine l'image ajustée à l'écran.

Concernant le parallélogramme d'origine non ajusté, la position situe l'image à l'écran, tandis que la taille du rectangle et la taille et la forme du parallélogramme déterminent la mise à l'échelle et l'inclinaison de l'image dessinée.

Comme cet exemple utilise une surcharge qui ne passe pas de paramètre callBackData, le rappel de Graphics.DrawImageAbort retourne true, ce qui provoque l'arrêt de la méthode DrawImage, et le code de gestion des exceptions figurant dans l'exemple imprime le texte de l'exception au lieu de dessiner l'image.



// Define DrawImageAbort callback method.
private bool DrawImageCallback1(IntPtr callBackData)
{

    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {

        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {

        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageParaRectAttribAbort(PaintEventArgs e)
{

    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback1);

    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");

    // Create parallelogram for drawing original image.
    Point ulCorner = new Point(100, 100);
    Point urCorner = new Point(550, 100);
    Point llCorner = new Point(150, 250);
    Point[] destPara1 = {ulCorner, urCorner, llCorner};

    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;

    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);

    // Create parallelogram for drawing adjusted image.
    Point ulCorner2 = new Point(325, 100);
    Point urCorner2 = new Point(550, 100);
    Point llCorner2 = new Point(375, 250);
    Point[] destPara2 = {ulCorner2, urCorner2, llCorner2};

    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {

            // Draw image to screen.
            e.Graphics.DrawImage(
                newImage,
                destPara2,
                srcRect,
                units,
                imageAttr,
                imageCallback);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft