Class TextLayer

TextLayer class

文字图层类

public class TextLayer : Layer

特性

姓名描述
AutoAdjustPalette { get; set; }获取或设置一个值,指示是否自动调整调色板。
virtual BackgroundColor { get; set; }获取或设置背景颜色的值。
override BitsPerPixel { get; }获取每像素计数的图像位数。
BlendingOptions { get; }获取混合选项。
virtual BlendModeKey { get; set; }获取或设置混合模式键。
BlendModeSignature { get; }获取混合模式签名。
Bottom { get; set; }获取或设置底层位置。
Bounds { get; }获取图像边界。
BufferSizeHint { get; set; }获取或设置缓冲区大小提示,它是为所有内部缓冲区定义的最大允许大小。
ChannelInformation { get; set; }获取或设置频道信息。
ChannelsCount { get; }获取层的通道数。
Clipping { get; set; }获取或设置图层裁剪。 0 = 基础,1 = 非基础.
Container { get; }获取Image容器.
DataStreamContainer { get; }获取对象的数据流。
DisplayName { get; set; }获取或设置图层的显示名称。
Disposed { get; }获取一个值,该值表示该实例是否被释放。
ExtraLength { get; }获取以字节为单位的层额外信息长度。
virtual FileFormat { get; }获取文件格式 的值
Filler { get; set; }获取或设置图层填充。
FillOpacity { get; set; }获取或设置填充不透明度。
Flags { get; set; }获取或设置图层标志。 位 0 = 透明保护; 位 1 = 可见; 位 2 = 过时; 位 3 = 1 对于 Photoshop 5.0 及更高版本,指示位 4 是否有有用的信息; 位 4 =与文档外观无关的像素数据.
Font { get; }获取字体。
override HasAlpha { get; }获取一个值,指示此实例是否具有 alpha.
virtual HasBackgroundColor { get; set; }获取或设置图像是否有背景色的值。
virtual HasTransparentColor { get; set; }获取图像是否有透明色的值。
override Height { get; }获取图像高度。
virtual HorizontalResolution { get; set; }获取或设置水平分辨率,以每英寸像素为单位,RasterImage .
virtual ImageOpacity { get; }获取此图像的不透明度。
InnerText { get; }获取层的文字
InterruptMonitor { get; set; }获取或设置中断监视器。
override IsCached { get; }获取当前是否缓存图像数据的值。
IsRawDataAvailable { get; }获取原始数据加载是否可用的值。
IsVisible { get; set; }获取或设置图层是否可见的值
virtual IsVisibleInGroup { get; }获取一个值,指示此实例是否在组中可见(如果图层不在组中,则表示根组)。
LayerBlendingRangesData { get; set; }获取或设置图层混合范围数据。
LayerCreationDateTime { get; set; }获取或设置图层创建日期时间。
LayerLock { get; set; }获取或设置layer lock. 注意如果设置了flag LayerFlags.TransparencyProtected 将被layer lock flag覆盖。 返回LayerFlags.TransparencyProtected flag需要申请layer option layer.Flags |= LayerFlags.TransparencyProtected
LayerMaskData { get; set; }获取或设置图层蒙版数据。
LayerOptions { get; }获取图层选项。
Left { get; set; }获取或设置左图层位置。
Length { get; }获取以字节为单位的总层长度。
Name { get; set; }获取或设置图层名称。
Opacity { get; set; }获取或设置图层不透明度。 0 = 透明,255 = 不透明。
Palette { get; set; }获取或设置调色板。直接表示像素时不使用调色板。
virtual PremultiplyComponents { get; set; }获取或设置一个值,指示图像分量是否必须预乘。
RawCustomColorConverter { get; set; }获取或设置自定义颜色转换器
virtual RawDataFormat { get; }获取原始数据格式。
RawDataSettings { get; }获取当前原始数据设置。请注意,使用这些设置时,数据加载时无需转换。
RawFallbackIndex { get; set; }获取或设置调色板索引超出范围时使用的回退索引
RawIndexedColorConverter { get; set; }获取或设置索引颜色转换器
virtual RawLineSize { get; }获取以字节为单位的原始行大小。
Resources { get; set; }获取或设置图层资源。
Right { get; set; }获取或设置正确的图层位置。
SheetColorHighlight { get; set; }获取或设置图层列表中的装饰板颜色高亮
Size { get; }获取图像大小。
Text { get; }获取文本。
TextBoundBox { get; set; }获取或设置文本绑定框。
TextColor { get; }获取文本的颜色。
TextData { get; }获取文本部分。
Top { get; set; }获取或设置顶层位置。
TransformMatrix { get; set; }获取或设置变换矩阵
virtual TransparentColor { get; set; }获取图像透明色。
virtual UpdateXmpData { get; set; }获取或设置一个值,指示是否更新 XMP 元数据。
virtual UseRawData { get; set; }获取或设置当原始数据加载可用时是否使用原始数据加载的值。
virtual VerticalResolution { get; set; }获取或设置垂直分辨率,以每英寸像素为单位,RasterImage .
override Width { get; }获取图像宽度。
virtual XmpData { get; set; }获取或设置 XMP 元数据。

方法

姓名描述
AddLayerMask(LayerMaskData)将蒙版添加到当前层。
override AdjustBrightness(int)调整图像的亮度。
override AdjustContrast(float)图像对比
override AdjustGamma(float)图像的伽马校正。
override AdjustGamma(float, float, float)图像的伽马校正。
override BinarizeBradley(double)使用 Bradley 自适应阈值算法对图像进行二值化,使用积分图像阈值
override BinarizeBradley(double, int)使用 Bradley 自适应阈值算法对图像进行二值化,使用积分图像阈值
override BinarizeFixed(byte)具有预定义阈值的图像二值化
override BinarizeOtsu()使用 Otsu 阈值对图像进行二值化
override CacheData()缓存数据并确保不会从底层执行额外的数据加载DataStreamContainer .
CanSave(ImageOptionsBase)确定图像是否可以保存为传递的保存选项所代表的指定文件格式。
override Crop(Rectangle)裁剪图像。
virtual Crop(int, int, int, int)带位移的裁剪图像。
Dispose()处理当前实例。
Dither(DitheringMethod, int)对当前图像执行抖动。
override Dither(DitheringMethod, int, IColorPalette)对当前图像执行抖动。
DrawImage(Point, RasterImage)在图层上绘制图像。
virtual Filter(Rectangle, FilterOptionsBase)过滤指定矩形。
GetArgb32Pixel(int, int)获取图像 32 位 ARGB 像素。
GetDefaultArgb32Pixels(Rectangle)获取默认的 32 位 ARGB 像素数组。
virtual GetDefaultOptions(object[])获取默认选项。
GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader)使用部分像素加载器获取默认像素数组。
GetDefaultRawData(Rectangle, RawDataSettings)获取默认原始数据数组。
GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)使用部分像素加载器获取默认原始数据数组。
GetFonts()获取文字图层的字体集。
override GetHashCode()返回此实例的哈希码。
virtual GetModifyDate(bool)获取上次修改资源图像的日期和时间。
virtual GetOriginalOptions()获取基于原始文件设置的选项。 这有助于保持原始图像的位深度和其他参数不变。 例如,如果我们加载一个每像素 1 位的黑白 PNG 图像,然后使用 the 保存Save方法,将生成每像素 8 位的输出 PNG 图像。 要避免它并保存每像素 1 位的 PNG 图像,请使用此方法获取相应的保存选项并将它们 传递给Save方法作为第二个参数.
GetPixel(int, int)获取图像像素。
GetSkewAngle()获取倾斜角度。 该方法适用于扫描的文本文档,用于确定扫描时的倾斜角度。
override Grayscale()将图像转换为灰度表示
LoadArgb32Pixels(Rectangle)加载 32 位 ARGB 像素。
LoadArgb64Pixels(Rectangle)加载 64 位 ARGB 像素。
LoadCmyk32Pixels(Rectangle)以 CMYK 格式加载像素。
LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader)按包加载部分 32 位 ARGB 像素。
LoadPartialPixels(Rectangle, IPartialPixelLoader)按包加载部分像素。
LoadPixels(Rectangle)加载像素。
LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)加载原始数据。
LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)加载原始数据。
virtual MergeLayerTo(Layer)将图层合并到指定的图层
NormalizeAngle()归一化角度。 此方法适用于扫描的文本文档,以消除倾斜扫描。 此方法使用GetSkewAngleRotate方法.
virtual NormalizeAngle(bool, Color)归一化角度。 此方法适用于扫描的文本文档,以消除倾斜扫描。 此方法使用GetSkewAngleRotate方法.
ReadArgb32ScanLine(int)按指定扫描线索引读取整条扫描线。
ReadScanLine(int)按指定扫描线索引读取整条扫描线。
ReplaceColor(Color, byte, Color)将一种颜色替换为具有允许差异的另一种颜色并保留原始 alpha 值以保存平滑的边缘。
virtual ReplaceColor(int, byte, int)将一种颜色替换为具有允许差异的另一种颜色并保留原始 alpha 值以保存平滑的边缘。
ReplaceNonTransparentColors(Color)用新颜色替换所有非透明颜色并保留原始 alpha 值以保存平滑边缘。 注意:如果您在没有透明度的图像上使用它,所有颜色将被替换为一个颜色。
virtual ReplaceNonTransparentColors(int)用新颜色替换所有非透明颜色并保留原始 alpha 值以保存平滑边缘。 注意:如果您在没有透明度的图像上使用它,所有颜色将被替换为一个颜色。
Resize(int, int)调整图像大小。默认值LeftTopToLeftTop使用.
override Resize(int, int, ImageResizeSettings)调整图像大小。
override Resize(int, int, ResizeType)调整图像大小。默认值LeftTopToLeftTop使用.
ResizeHeightProportionally(int)按比例调整高度。
virtual ResizeHeightProportionally(int, ImageResizeSettings)按比例调整高度。
virtual ResizeHeightProportionally(int, ResizeType)按比例调整高度。
ResizeWidthProportionally(int)按比例调整宽度。
virtual ResizeWidthProportionally(int, ImageResizeSettings)按比例调整宽度。
virtual ResizeWidthProportionally(int, ResizeType)按比例调整宽度。
virtual Rotate(float)围绕中心旋转图像。
override Rotate(float, bool, Color)围绕中心旋转图像。
override RotateFlip(RotateFlipType)旋转、翻转或旋转并翻转图像。
Save()将图像数据保存到底层流中。
override Save(Stream)将对象的数据保存到指定的流中。
Save(string)将对象的数据保存到指定的文件位置。
Save(Stream, ImageOptionsBase)根据保存选项以指定文件格式将图像数据保存到指定流。
override Save(string, bool)将对象的数据保存到指定的文件位置。
override Save(string, ImageOptionsBase)根据保存选项以指定的文件格式将对象的数据保存到指定的文件位置。
override Save(Stream, ImageOptionsBase, Rectangle)根据保存选项以指定文件格式将图像数据保存到指定流。
override Save(string, ImageOptionsBase, Rectangle)根据保存选项以指定的文件格式将对象的数据保存到指定的文件位置。
SaveArgb32Pixels(Rectangle, int[])保存 32 位 ARGB 像素。
SaveCmyk32Pixels(Rectangle, int[])保存像素。
SavePixels(Rectangle, Color[])保存像素。
SaveRawData(byte[], int, Rectangle, RawDataSettings)保存原始数据。
SetArgb32Pixel(int, int, int)为指定位置设置图像 32 位 ARGB 像素。
override SetPalette(IColorPalette, bool)设置图像调色板。
SetPixel(int, int, Color)为指定位置设置图像像素。
virtual SetResolution(double, double)为此设置分辨率RasterImage .
ShallowCopy()创建当前层的浅表副本。 请https://msdn.microsoft.com/ru-ru/library/system.object.memberwiseclone(v=vs.110).aspx解释.
virtual ToBitmap()将光栅图像转换为位图。
UpdateText(string)更新文本。
UpdateText(string, Color)更新文本。
UpdateText(string, float)更新文本。
UpdateText(string, Point)更新文本。
UpdateText(string, float, Color)更新文本。
UpdateText(string, Point, Color)更新文本。
UpdateText(string, Point, float)更新文本。
UpdateText(string, Point, float, Color)更新文本。
WriteArgb32ScanLine(int, int[])将整个扫描线写入指定的扫描线索引。
WriteScanLine(int, Color[])将整个扫描线写入指定的扫描线索引。

例子

以下示例演示了通过 ITextPortion 对从右到左的语言进行的文本对齐可以正常工作。

[C#]

string sourceFilePath = "bidi.psd";
string exportFilePath = "bidiOutput.psd";

using (PsdImage image = (PsdImage)Image.Load(sourceFilePath))
{
    TextLayer layer = (TextLayer)image.Layers[2];
    ITextPortion[] portions = layer.TextData.Items;

    portions[0].Paragraph.Justification = JustificationMode.Center;
    layer.TextData.UpdateLayerData();

    image.Save(exportFilePath);
}

以下代码演示了如何获取文本层中任何文本部分的字体大小。

[C#]

// 提取错误的字体大小 
string filePath = "直播+电商.psd";

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

    // 旧 API(使用第一段字体)
    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;

    // 检查基本字体大小
    if (Math.Abs(100.0 - baseFontSize) > tolerance)
    {
        throw new Exception("Font size was read incorrect");
    }

    // 检查真实字体大小
    if (Math.Abs(88.425 - fontSize) > tolerance)
    {
        throw new Exception("TransformMatrix was read incorrect");
    }

    // 新 API(一个文本层可以包含任意数量的字体大小)
    ITextPortion[] portions = ((TextLayer)psdImage.Layers[layerIndex]).TextData.Items;
    ITextStyle style = portions[0].Style;
    double fontSizeOfPortion = matrix[0] * style.FontSize;

    // 检查基本部分字体大小
    if (Math.Abs(100.0 - style.FontSize) > tolerance)
    {
        throw new Exception("Font size was read incorrect");
    }

    // 检查实部字体大小
    if (Math.Abs(88.425 - fontSizeOfPortion) > tolerance)
    {
        throw new Exception("TransformMatrix was read incorrect");
    }
}

也可以看看