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() يحصل على الصورة المخزنة بالشكل كملفImage الكائن .
ToStream() إنشاء وإرجاع دفق يحتوي على بايت الصورة.

ملاحظات

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

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

بغض النظر عما إذا كانت الصورة مخزنة داخل الشكل أو مرتبطة ، يمكنك دائمًا الوصول إلى الصورة الفعلية باستخدامToByteArray وToStream وToImage أوSave طرق . إذا تم تخزين الصورة داخل الشكل ، يمكنك أيضًا الوصول إليها مباشرةً باستخدام ملف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");

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

أنظر أيضا