Class VsmsResource

VsmsResource class

Class VsmsResource. يحتوي هذا المورد على معلومات حول قناع طبقة المتجه

public class VsmsResource : VectorPathDataResource

المنشئون

اسموصف
VsmsResource()يقوم بتهيئة مثيل جديد لملفVsmsResource فئة .
VsmsResource(byte[])يقوم بتهيئة مثيل جديد لملفVsmsResource فئة .

الخصائص

اسموصف
IsDisabled { get; set; }الحصول على أو تعيين قيمة تشير إلى ما إذا كان هذا المثيل معطلاً.
IsInverted { get; set; }الحصول على أو تعيين قيمة تشير إلى ما إذا كان هذا المثيل معكوسًا.
IsNotLinked { get; set; }الحصول على أو تعيين قيمة تشير إلى ما إذا كان هذا المثيل غير مرتبط.
override Key { get; }يحصل على مفتاح مورد الطبقة.
override Length { get; }الحصول على طول مورد الطبقة بالبايت.
Paths { get; set; }الحصول على أو تعيين سجلات المسار .
override PsdVersion { get; }يحصل على نسخة مديرية الأمن العام .
override Signature { get; }يحصل على التوقيع.
Version { get; set; }الحصول على الإصدار أو تحديده.

طُرق

اسموصف
override Save(StreamContainer, int)يحفظ المورد في حاوية التدفق المحددة.
override ToString()إرجاع أString الذي يمثل هذا المثال.

مجالات

اسموصف
const TypeToolKeyمفتاح معلومات أداة النوع.

أمثلة

يوضح المثال التالي دعم تحميل مورد VsmsResource. كيف يعمل تحرير المسارات.

[C#]

[Test]
public void TestPsdNet140()
{
    // دعم VsmsResource
    string sourceFileName = "EmptyRectangle.psd";
    string exportPath = "EmptyRectangle_changed.psd";
    var im = (PsdImage)Image.Load(sourceFileName);
    using (im)
    {
        var resource = GetVsmsResource(im);
        // قراءة
        if (resource.IsDisabled != false ||
            resource.IsInverted != false ||
            resource.IsNotLinked != false ||
            resource.Paths.Length != 7 ||
            resource.Paths[0].Type != VectorPathType.PathFillRuleRecord ||
            resource.Paths[1].Type != VectorPathType.InitialFillRuleRecord ||
            resource.Paths[2].Type != VectorPathType.ClosedSubpathLengthRecord ||
            resource.Paths[3].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
            resource.Paths[4].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
            resource.Paths[5].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
            resource.Paths[6].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked)
        {
            throw new Exception("VsmsResource was read wrong");
        }

        var pathFillRule = (PathFillRuleRecord)resource.Paths[0];
        var initialFillRule = (InitialFillRuleRecord)resource.Paths[1];
        var subpathLength = (LengthRecord)resource.Paths[2];

        // لا تحتوي قاعدة تعبئة المسار على أي معلومات إضافية
        if (pathFillRule.Type != VectorPathType.PathFillRuleRecord ||
        initialFillRule.Type != VectorPathType.InitialFillRuleRecord ||
        initialFillRule.IsFillStartsWithAllPixels != false ||
        subpathLength.Type != VectorPathType.ClosedSubpathLengthRecord ||
        subpathLength.IsClosed != true ||
        subpathLength.IsOpen != false)
        {
            throw new Exception("VsmsResource paths were read wrong");
        }

        // التحرير
        resource.IsDisabled = true;
        resource.IsInverted = true;
        resource.IsNotLinked = true;
        var bezierKnot = (BezierKnotRecord)resource.Paths[3];
        bezierKnot.Points[0] = new Point(0, 0);
        bezierKnot = (BezierKnotRecord)resource.Paths[4];
        bezierKnot.Points[0] = new Point(8039798, 10905191);
        initialFillRule.IsFillStartsWithAllPixels = true;
        subpathLength.IsClosed = false;
        im.Save(exportPath);
    }
}

private VsmsResource GetVsmsResource(PsdImage image)
{
    var layer = image.Layers[1];
    VsmsResource resource = null;
    var resources = layer.Resources;
    for (int i = 0; i < resources.Length; i++)
    {
        if (resources[i] is VsmsResource)
        {
            resource = (VsmsResource)resources[i];
            break;
        }
    }
    if (resource == null)
    {
        throw new Exception("VsmsResource not found");
    }
    return resource;
}

أنظر أيضا