Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Windows SDK-val végzett képmanipulációt mutatja be.
Az alábbi témakörök bemutatják az osztály képmanipulációhoz való használatát System.Drawing.Image .
Képek megjelenítése a .NET-keretrendszerrel
Az alábbi kódpéldában módosítja az OnPaint eseménykezelőt, hogy egy mutatót kérjen le a Graphics főűrlap objektumához. A OnPaint függvény egy Windows Forms-alkalmazáshoz készült, amely valószínűleg egy Visual Studio-alkalmazásvarázslóval jön létre.
A képet az Image osztály jelöli. A rendszerképadatok egy .jpg fájlból töltődnek be a System.Drawing.Image.FromFile metódus használatával. Mielőtt a képet az űrlapra rajzolnák, az űrlapot átméretezik, hogy befogadja a képet. A kép rajza a System.Drawing.Graphics.DrawImage módszerrel történik.
Az Graphics osztályok és Image az osztályok is a System.Drawing névtérben találhatók.
példa
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
protected:
virtual Void Form1::OnPaint(PaintEventArgs^ pe) override
{
Graphics^ g = pe->Graphics;
Image^ image = Image::FromFile("SampleImage.jpg");
Form::ClientSize = image->Size;
g->DrawImage( image, 0, 0, image->Size.Width, image->Size.Height );
}
Alakzatok rajzolása a .NET-keretrendszerrel
Az alábbi kódpéldában az Graphics osztály módosítja az OnPaint eseménykezelőt, hogy a főűrlap objektumához mutatót Graphics kérjen le. Ezt a mutatót használják az űrlap háttérszínének beállításához, valamint egy vonal és egy ív rajzolásához a System.Drawing.Graphics.DrawLine és DrawArc metódusok segítségével.
példa
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
// ...
protected:
virtual Void Form1::OnPaint(PaintEventArgs^ pe ) override
{
Graphics^ g = pe->Graphics;
g->Clear(Color::AntiqueWhite);
Rectangle rect = Form::ClientRectangle;
Rectangle smallRect;
smallRect.X = rect.X + rect.Width / 4;
smallRect.Y = rect.Y + rect.Height / 4;
smallRect.Width = rect.Width / 2;
smallRect.Height = rect.Height / 2;
Pen^ redPen = gcnew Pen(Color::Red);
redPen->Width = 4;
g->DrawLine(redPen, 0, 0, rect.Width, rect.Height);
Pen^ bluePen = gcnew Pen(Color::Blue);
bluePen->Width = 10;
g->DrawArc( bluePen, smallRect, 90, 270 );
}
Képek elforgatása a .NET-keretrendszerrel
Az alábbi példakód bemutatja, hogy az System.Drawing.Image osztály milyen módon tölt be egy lemezről származó képet, 90 fokban elforgatja és új .jpg fájlként menti.
példa
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
int main()
{
Image^ image = Image::FromFile("SampleImage.jpg");
image->RotateFlip( RotateFlipType::Rotate90FlipNone );
image->Save("SampleImage_rotated.jpg");
return 0;
}
Képfájlformátumok konvertálása a .NET-keretrendszerrel
Az alábbi példakód bemutatja a System.Drawing.Image képfájlok konvertálásához és mentéséhez használt osztályt és System.Drawing.Imaging.ImageFormat enumerálást. Az alábbi kód betölt egy képet egy .jpg fájlból, majd .gif és .bmp fájlformátumban menti.
példa
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;
int main()
{
Image^ image = Image::FromFile("SampleImage.jpg");
image->Save("SampleImage.png", ImageFormat::Png);
image->Save("SampleImage.bmp", ImageFormat::Bmp);
return 0;
}
Kapcsolódó szakaszok
Grafikus programozás első lépései