TextLayer.TransformMatrix

TextLayer.TransformMatrix property

Obtient ou définit la matrice de transformation

public double[] TransformMatrix { get; set; }

Valeur de la propriété

La matrice de transformation

Exemples

Le code suivant montre comment obtenir la taille de la police pour n’importe quelle partie de texte dans le calque de texte.

[C#]

// Extraction de la mauvaise taille de police 
string filePath = "直播+电商.psd";

var tolerance = 0.001;
using (var image = Image.Load(filePath))
{
    int layerIndex = 22;

    // Ancienne API (Utilisation de la police du premier paragraphe)
    PsdImage psdImage = image as PsdImage;
    double[] matrix = ((TextLayer)psdImage.Layers[layerIndex]).TransformMatrix;
    double baseFontSize = ((TextLayer)psdImage.Layers[layerIndex]).Font.Size;
    double fontSize = matrix[0] * baseFontSize;

    // Vérification de la taille de la police de base
    if (Math.Abs(100.0 - baseFontSize) > tolerance)
    {
        throw new Exception("Font size was read incorrect");
    }

    // Vérification de la taille réelle de la police
    if (Math.Abs(88.425 - fontSize) > tolerance)
    {
        throw new Exception("TransformMatrix was read incorrect");
    }

    // Nouvelle API (Un calque de texte peut contenir n'importe quelle quantité de tailles de police)
    ITextPortion[] portions = ((TextLayer)psdImage.Layers[layerIndex]).TextData.Items;
    ITextStyle style = portions[0].Style;
    double fontSizeOfPortion = matrix[0] * style.FontSize;

    // Vérification de la taille de la police de la portion de base
    if (Math.Abs(100.0 - style.FontSize) > tolerance)
    {
        throw new Exception("Font size was read incorrect");
    }

    // Vérification de la taille de police de la portion réelle
    if (Math.Abs(88.425 - fontSizeOfPortion) > tolerance)
    {
        throw new Exception("TransformMatrix was read incorrect");
    }
}

Voir également