ImageData

ImageData class

يحدد صورة للشكل.

لمعرفة المزيد، قم بزيارةالعمل مع الصور مقالة توثيقية.

public class ImageData

الخصائص

اسموصف
BiLevel { get; set; }يحدد ما إذا كان سيتم عرض الصورة بالأبيض والأسود.
Borders { get; }الحصول على مجموعة حدود الصورة. الحدود لها تأثير فقط على الصور المضمنة.
Brightness { get; set; }الحصول على سطوع الصورة أو تعيينه. يجب أن تكون قيمة هذه الخاصية رقمًا من 0.0 (الأخفت) إلى 1.0 (الألمع).
ChromaKey { get; set; }يحدد قيمة اللون للصورة التي سيتم التعامل معها على أنها شفافة.
Contrast { get; set; }الحصول على أو تعيين التباين للصورة المحددة. يجب أن تكون قيمة value لهذه الخاصية رقمًا يتراوح بين 0.0 (أقل تباين) إلى 1.0 (أكبر تباين).
CropBottom { get; set; }يحدد جزء إزالة الصورة من الجانب السفلي.
CropLeft { get; set; }يحدد جزء إزالة الصورة من الجانب الأيسر.
CropRight { get; set; }يحدد جزء إزالة الصورة من الجانب الأيمن.
CropTop { get; set; }يحدد جزء إزالة الصورة من الجانب العلوي.
GrayScale { get; set; }يحدد ما إذا كانت الصورة سيتم عرضها في وضع التدرج الرمادي.
HasImage { get; }إرجاعحقيقي إذا كان الشكل يحتوي على بايتات صورة أو يربط صورة.
ImageBytes { get; set; }الحصول على أو تعيين البايتات الأولية للصورة المخزنة في الشكل.
ImageSize { get; }الحصول على معلومات حول حجم الصورة ودقتها.
ImageType { get; }الحصول على نوع الصورة.
IsLink { get; }إرجاعحقيقي إذا كانت الصورة مرتبطة بالشكل (متىSourceFullName تم تحديده).
IsLinkOnly { get; }إرجاعحقيقي إذا كانت الصورة مرتبطة وغير مخزنة في المستند.
SourceFullName { get; set; }الحصول على أو تعيين مسار واسم الملف المصدر للصورة المرتبطة.
Title { get; set; }يحدد عنوان الصورة.

طُرق

اسموصف
Save(Stream)يحفظ الصورة في الدفق المحدد.
Save(string)يحفظ الصورة في ملف.
SetImage(Image)يضبط الصورة التي يعرضها الشكل.
SetImage(Stream)يضبط الصورة التي يعرضها الشكل.
SetImage(string)يضبط الصورة التي يعرضها الشكل.
ToByteArray()إرجاع بايتات الصورة لأي صورة بغض النظر عما إذا كانت الصورة مخزنة أو مرتبطة.
ToImage()يحصل على الصورة المخزنة بالشكل aImage الكائن.
ToStream()إنشاء وإرجاع دفق يحتوي على بايتات الصورة.

ملاحظات

استخدم الImageData الخاصية للوصول إلى الصورة وتعديلها داخل الشكل. لا تقم بإنشاء مثيلات لـImageData الصف مباشرة.

يمكن تخزين الصورة داخل شكل أو ربطها بملف خارجي أو كليهما (ربطها وتخزينها في المستند).

بغض النظر عما إذا كانت الصورة مخزنة داخل الشكل أو مرتبطة، يمكنك دائمًا الوصول إلى الصورة الفعلية باستخدامToByteArray ,ToStream ,ToImage أوSave methods. إذا كانت الصورة مخزنة داخل الشكل، فيمكنك أيضًا الوصول إليها مباشرة باستخدامImageBytes ملكية.

لتخزين صورة داخل شكل، استخدمSetImage طريقة. لربط صورة بشكل ما، قم بتعيينSourceFullName ملكية.

أمثلة

يوضح كيفية استخراج الصور من مستند وحفظها في نظام الملفات المحلي كملفات فردية.

Document doc = new Document(MyDir + "Images.docx");

// احصل على مجموعة الأشكال من المستند،
// وحفظ بيانات الصورة لكل شكل مع صورة كملف في نظام الملفات المحلي.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);

Assert.AreEqual(9, shapes.Count(s => ((Shape)s).HasImage));

int imageIndex = 0;
foreach (Shape shape in shapes.OfType<Shape>())
{
    if (shape.HasImage)
    {
         // قد تحتوي بيانات صورة الأشكال على صور للعديد من تنسيقات الصور الممكنة.
        // يمكننا تحديد امتداد الملف لكل صورة تلقائيًا، بناءً على تنسيقها.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

يوضح كيفية إدراج صورة مرتبطة في مستند.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

string imageFileName = ImageDir + "Windows MetaFile.wmf";

// فيما يلي طريقتان لتطبيق صورة على شكل حتى يتمكن من عرضها.
// 1 - قم بتعيين الشكل الذي يحتوي على الصورة.
Shape shape = new Shape(builder.Document, ShapeType.Image);
shape.WrapType = WrapType.Inline;
shape.ImageData.SetImage(imageFileName);

builder.InsertNode(shape);

doc.Save(ArtifactsDir + "Image.CreateLinkedImage.Embedded.docx");

// كل صورة نخزنها في شكلها ستزيد من حجم وثيقتنا.
Assert.True(70000 < new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Embedded.docx").Length);

doc.FirstSection.Body.FirstParagraph.RemoveAllChildren();

// 2 - قم بتعيين الشكل للارتباط بملف صورة في نظام الملفات المحلي.
shape = new Shape(builder.Document, ShapeType.Image);
shape.WrapType = WrapType.Inline;
shape.ImageData.SourceFullName = imageFileName;

builder.InsertNode(shape);
doc.Save(ArtifactsDir + "Image.CreateLinkedImage.Linked.docx");

// سيؤدي الارتباط بالصور إلى توفير المساحة وينتج عنه مستند أصغر.
// ومع ذلك، يمكن للمستند عرض الصورة بشكل صحيح فقط while
// ملف الصورة موجود في الموقع الذي تشير إليه خاصية "SourceFullName" الخاصة بالشكل.
Assert.True(10000 > new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Linked.docx").Length);

أنظر أيضا