SetTransform

MetafileRecorderGraphics2D.SetTransform method

Dönüşümü ayarlar.

public void SetTransform(Matrix transform)
ParametreTipTanım
transformMatrixYeni dönüşüm matrisi.

Örnekler

Bu örnek, bir dosyadan bir EMF görüntüsünün nasıl yükleneceğini ve üzerine bir metin dizesinin nasıl çizileceğini gösterir.

[C#]

string dir = "c:\\temp\\";

using (Aspose.Imaging.FileFormats.Emf.EmfImage emfImage = (Aspose.Imaging.FileFormats.Emf.EmfImage)Aspose.Imaging.Image.Load(dir + "test.emf"))
{
    Aspose.Imaging.FileFormats.Emf.Graphics.EmfRecorderGraphics2D graphics =
        Aspose.Imaging.FileFormats.Emf.Graphics.EmfRecorderGraphics2D.FromEmfImage(emfImage);

    // İlk olarak, resmin boyutunu alın
    int width = emfImage.Width;
    int height = emfImage.Height;

    // İkinci olarak, görüntünün ana köşegeni boyunca bir metin dizesi koymak için bir dönüşüm hesaplayın -
    // sol üst köşeden sağ üst köşeye.
    float emFontSize = 96f;
    float d = (float)System.Math.Sqrt(width * width + height * height);
    float scaleFactor = d / (emFontSize * 5f);

    float tan = ((float)height) / width;                
    double radians = System.Math.Atan(tan);
    double degrees = (180 * radians) / System.Math.PI;

    Aspose.Imaging.Matrix transform = new Aspose.Imaging.Matrix();
    transform.Rotate((float)degrees);
    transform.Scale(scaleFactor, scaleFactor);

    // Ardından, dönüşümü ayarlayın.
    graphics.SetTransform(transform);

    // Son olarak, ana köşegen boyunca bir filigran (pembe renkli metin dizisi) koyun.
    graphics.DrawString("WATERMARK", new Aspose.Imaging.Font("Courier New", emFontSize), Aspose.Imaging.Color.LightPink, 0, 0/*, (float)degrees*/);

    // Resmi filigranlı olarak başka bir EMF dosyasına kaydedin.
    using (Aspose.Imaging.FileFormats.Emf.EmfImage scaledEmfImage = graphics.EndRecording())
    {
        scaledEmfImage.Save(dir + "test.scaled.emf");
    }
}

Ayrıca bakınız