Disegno Immagini

Disegno Linee

Questo esempio utilizza la classe Graphics per disegnare le forme di linea sulla superficie dell’immagine. Per dimostrare l’operazione, l’esempio crea una nuova immagine e disegna linee sulla superficie dell’immagine utilizzando il metodo DrawLine esposto dalla classe Graphics. Per prima cosa, creeremo un’immagine PsdImage specificando la sua altezza e larghezza.

Una volta creata l’immagine, utilizzeremo il metodo Clear esposto dalla classe Graphics per impostare il colore di sfondo. Il metodo DrawLine della classe Graphics viene utilizzato per disegnare una linea su un’immagine che collega due strutture di punti. Questo metodo ha diversi sovraccarichi che accettano l’istanza della classe Pen e le coppie di coordinate dei punti o strutture Point/PointF come argomenti. La classe Pen definisce un oggetto utilizzato per disegnare linee, curve e figure. La classe Pen ha diversi costruttori sovraccaricati per disegnare linee con colore, larghezza e pennello specificati. La classe SolidBrush viene utilizzata per disegnare in modo continuo con un colore specifico. Infine, l’immagine viene esportata nel formato file BMP. Il seguente frammento di codice mostra come disegnare le forme delle linee sulla superficie dell’immagine.

String dataDir = Utils.getDataDir(DrawingLines.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Lines.bmp";
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (Image image = new PsdImage(100, 100)) {
// Create and initialize an instance of Graphics class and Clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.clear(Color.getYellow());
// Draw two dotted diagonal lines by specifying the Pen object having blue color and co-ordinate Points
graphic.drawLine(new Pen(Color.getBlue()), 9, 9, 90, 90);
graphic.drawLine(new Pen(Color.getBlue()), 9, 90, 90, 9);
// Draw a four continuous line by specifying the Pen object having Solid Brush with red color and two point structures
graphic.drawLine(new Pen(new SolidBrush(Color.getRed())), new Point(9, 9), new Point(9, 90));
graphic.drawLine(new Pen(new SolidBrush(Color.getAqua())), new Point(9, 90), new Point(90, 90));
graphic.drawLine(new Pen(new SolidBrush(Color.getBlack())), new Point(90, 90), new Point(90, 9));
graphic.drawLine(new Pen(new SolidBrush(Color.getWhite())), new Point(90, 9), new Point(9, 9));
image.save(outpath, saveOptions);
}

Disegno Ellisse

L’esempio di disegno di ellissi è il secondo articolo della serie sul disegno di forme. Utilizzeremo la classe Graphics per disegnare la forma dell’ellisse sulla superficie dell’immagine. Per dimostrare l’operazione, l’esempio crea una nuova immagine e disegna la forma dell’ellisse sulla superficie dell’immagine utilizzando il metodo DrawEllipse esposto dalla classe Graphics. Per prima cosa, creeremo un’immagine PsdImage specificando la sua altezza e larghezza.

Dopo aver creato l’immagine, creeremo e inizializzeremo un oggetto della classe Graphics e imposteremo il colore di sfondo dell’immagine utilizzando il metodo Clear della classe Graphics. Il metodo DrawEllipse della classe Graphics viene utilizzato per disegnare la forma dell’ellisse su una superficie di immagine specificata dalla struttura del rettangolo delimitante. Questo metodo ha diversi sovraccarichi che accettano le istanze delle classi Pen e Rectangle/RectangleF o una coppia di coordinate, altezza e larghezza come argomenti. La classe Pen definisce un oggetto utilizzato per disegnare linee, curve e figure. La classe Pen ha diversi costruttori sovraccaricati per disegnare linee con colore, larghezza e pennello specificati. La classe Rectangle memorizza un insieme di quattro interi che rappresentano la posizione e le dimensioni di un rettangolo. La classe Rectangle ha diversi costruttori sovraccaricati per disegnare la struttura del rettangolo con dimensioni e posizione specificate. La classe SolidBrush viene utilizzata per disegnare in modo continuo con un colore specifico. Infine, l’immagine viene esportata nel formato file BMP. Il seguente frammento di codice mostra come disegnare la forma dell’ellisse sulla superficie dell’immagine.

String dataDir = Utils.getDataDir(DrawingEllipse.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Ellipse.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (Image image = new PsdImage(100, 100)) {
// Create and initialize an instance of Graphics class and Clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.clear(Color.getYellow());
// Draw a dotted ellipse shape by specifying the Pen object having red color and a surrounding Rectangle
graphic.drawEllipse(new Pen(Color.getRed()), new Rectangle(30, 10, 40, 80));
// Draw a continuous ellipse shape by specifying the Pen object having solid brush with blue color and a surrounding Rectangle
graphic.drawEllipse(new Pen(new SolidBrush(Color.getBlue())), new Rectangle(10, 30, 80, 40));
// export image to bmp file format.
image.save(outpath, saveOptions);
}

Disegno Rettangolo

In questo esempio disegneremo la forma del rettangolo sulla superficie dell’immagine. Per dimostrare l’operazione, l’esempio crea una nuova immagine e disegna la forma del rettangolo sulla superficie dell’immagine utilizzando il metodo DrawRectangle esposto dalla classe Graphics. Per prima cosa, creeremo un’immagine PsdImage specificando la sua altezza e larghezza. Successivamente, imposteremo il colore di sfondo dell’immagine utilizzando il metodo Clear della classe Graphics.

Il metodo DrawRectangle della classe Graphics viene utilizzato per disegnare la forma del rettangolo su una superficie di immagine specificata dalla struttura del rettangolo. Questo metodo ha diversi sovraccarichi che accettano le istanze delle classi Pen e Rectangle/RectangleF o coppie di coordinate, larghezza e altezza come argomenti. La classe Rectangle memorizza un insieme di quattro interi che rappresentano la posizione e le dimensioni di un rettangolo. La classe Rectangle ha diversi costruttori sovraccaricati per disegnare la struttura del rettangolo con dimensioni e posizione specificate. Infine, l’immagine viene esportata nel formato file BMP. Il seguente frammento di codice mostra come disegnare la forma del rettangolo sulla superficie dell’immagine.

// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Rectangle.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (Image image = new PsdImage(100, 100)) {
// Create and initialize an instance of Graphics class, Clear Graphics surface, Draw a rectangle shapes and save all changes.
Graphics graphic = new Graphics(image);
graphic.clear(Color.getYellow());
graphic.drawRectangle(new Pen(Color.getRed()), new Rectangle(30, 10, 40, 80));
graphic.drawRectangle(new Pen(new SolidBrush(Color.getBlue())), new Rectangle(10, 30, 80, 40));
// export image to bmp file format.
image.save(outpath, saveOptions);
}

Disegno Arco

In questa sessione della serie sul disegno di forme, disegneremo la forma dell’arco sulla superficie dell’immagine. Utilizzeremo il metodo DrawArc di Graphics per dimostrare l’operazione su un’immagine BMP. Per prima cosa, creeremo un’immagine PsdImage specificando la sua altezza e larghezza. Una volta creata l’immagine, utilizzeremo il metodo Clear esposto dalla classe Graphics per impostare il suo colore di sfondo.

Il metodo DrawArc della classe Graphics viene utilizzato per disegnare la forma dell’arco su una superficie di immagine. DrawArc rappresenta una parte di un’ellisse specificata dalla struttura del rettangolo o dalla coppia di coordinate. Questo metodo ha diversi sovraccarichi che accettano le istanze delle classi Pen e delle strutture Rectangle/RectangleF o una coppia di coordinate, larghezza e altezza come argomenti. Infine, l’immagine viene esportata nel formato file BMP. Il seguente frammento di codice mostra come disegnare la forma dell’arco sulla superficie dell’immagine.

String dataDir = Utils.getDataDir(DrawingArc.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Arc.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (Image image = new PsdImage(100, 100)) {
// Create and initialize an instance of Graphics class and clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.clear(Color.getYellow());
// Draw an arc shape by specifying the Pen object having red black color and coordinates, height, width, start & end angles
int width = 100;
int height = 200;
int startAngle = 45;
int sweepAngle = 270;
// Draw arc to screen and save all changes.
graphic.drawArc(new Pen(Color.getBlack()), 0, 0, width, height, startAngle, sweepAngle);
// export image to bmp file format.
image.save(outpath, saveOptions);
}

Disegno Bezier

Questo esempio utilizza la classe Graphics per disegnare la forma di Bezier sulla superficie dell’immagine. Per dimostrare l’operazione, l’esempio crea una nuova immagine e disegna la forma di Bezier sulla superficie dell’immagine utilizzando il metodo DrawBezier esposto dalla classe Graphics. Per prima cosa, creeremo un’immagine PsdImage specificando la sua altezza e larghezza. Una volta creata l’immagine, utilizzeremo il metodo Clear esposto dalla classe Graphics per impostare il suo colore di sfondo.

Il metodo DrawBezier della classe Graphics viene utilizzato per disegnare la forma di Bezier spline su una superficie di immagine definita da quattro strutture Point. Questo metodo ha diversi sovraccarichi che accettano le istanze della classe Pen e quattro coppie ordinate di coordinate o quattro strutture Point/PointF o array di strutture Point/PointF. La classe Pen definisce un oggetto utilizzato per disegnare linee, curve e figure. La classe Pen ha diversi costruttori sovraccaricati per disegnare linee con colore, larghezza e pennello specificati. Infine, l’immagine viene esportata nel formato file BMP. Il seguente frammento di codice mostra come disegnare la forma di Bezier sulla superficie dell’immagine.

String dataDir = Utils.getDataDir(DrawingBezier.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Bezier.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (Image image = new PsdImage(100, 100)) {
// Create and initialize an instance of Graphics class and clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.clear(Color.getYellow());
// Initializes the instance of PEN class with black color and width
Pen BlackPen = new Pen(Color.getBlack(), 3);
float startX = 10;
float startY = 25;
float controlX1 = 20;
float controlY1 = 5;
float controlX2 = 55;
float controlY2 = 10;
float endX = 90;
float endY = 25;
// Draw a Bezier shape by specifying the Pen object having black color and co-ordinate Points and save all changes.
graphic.drawBezier(BlackPen, startX, startY, controlX1, controlY1, controlX2, controlY2, endX, endY);
// export image to bmp file format.
image.save(outpath, saveOptions);
}

Disegno Immagini utilizzando la Funzionalità Principale

Aspose.PSD è una libreria che offre molte funzionalità preziose, tra cui la creazione di immagini da zero. Disegnare utilizzando la funzionalità principale come manipolare le informazioni bitmap di un’immagine, oppure utilizzare le funzionalità avanzate come Graphics e GraphicsPath per disegnare forme sulla superficie dell’immagine con l’aiuto di diversi pennelli e penne. Utilizzando la classe RasterImage di Aspose.PSD, è possibile recuperare le informazioni sui pixel di un’area dell’immagine e manipolarle. La classe RasterImage contiene l’intera funzionalità principale di disegno, come ottenere e impostare i pixel e altri metodi per la manipolazione delle immagini. Creare una nuova immagine utilizzando uno dei metodi descritti in Creazione File e assegnarla a un’istanza della classe RasterImage. Utilizzare il metodo LoadPixels della classe RasterImage per recuperare le informazioni dei pixel di una parte di un’immagine. Una volta ottenuto un array di pixel, è possibile manipolarlo, ad esempio cambiando il colore di ciascun pixel. Dopo aver manipolato le informazioni sui pixel, riportarle nell’area desiderata dell’immagine utilizzando il metodo SavePixels della classe RasterImage. Il seguente frammento di codice mostra come disegnare immagini utilizzando la funzionalità principale.

String dataDir = Utils.getDataDir(CoreDrawingFeatures.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String loadpath = dataDir + "sample.psd";
String outpath = dataDir + "CoreDrawingFeatures.bmp";
// Create an instance of Image
try (PsdImage image = new PsdImage(loadpath)) {
// load pixels
int[] pixels = image.loadArgb32Pixels(new Rectangle(0, 0, 100, 10));
for (int i = 0; i < pixels.length; i++) {
// specify pixel color value (gradient in this case).
pixels[i] = i;
}
// save modified pixels.
image.saveArgb32Pixels(new Rectangle(0, 0, 100, 10), pixels);
// export image to bmp file format.
image.save(outpath, new BmpOptions());
}