الفئة BmpImage
محتويات
[
يخفي
]BmpImage class
يمكنك التعامل بسهولة مع ملفات Bitmap (BMP) وDevice Independent Bitmap (DIB)، مما يسهل التلاعب الفعال ومعالجة الصور النقطية. من خلال تنفيذ عمليات مختلفة على الصور، يبسط هذا API سير العمل، ويقدم للمطورين مجموعة أدوات موثوقة للعمل مع صيغ BMP و DIB في تطبيقاتهم البرمجية.
public sealed class BmpImage : RasterCachedImage
المنشئات
| الاسم | الوصف |
|---|---|
| BmpImage(RasterImage) | أنشئ بسهولة نسخة جديدة من الفئة BmpImage عن طريق تهيئتها بكائن RasterImage. مثالي للمطورين الذين يرغبون في تحويل الصور النقطية الحالية إلى صيغة BmpImage بسلاسة، مما يضمن التوافق وسهولة التكامل في مشاريعهم |
| BmpImage(Stream) | ابدأ باستخدام الفئة BmpImage بسهولة عن طريق تهيئة نسخة جديدة باستخدام هذا المُنشئ، مع استخدام تدفق كمدخل. مثالي للمطورين الذين يبحثون عن طريقة مريحة للعمل مع كائنات BmpImage من مصادر بيانات متعددة، مما يضمن المرونة وسهولة التكامل |
| BmpImage(string) | ابدأ باستخدام الفئة BmpImage بسهولة باستخدام هذا المُنشئ الذي يهيئ نسخة جديدة. مثالي للمطورين الذين يرغبون في البدء بسرعة وكفاءة مع كائنات BmpImage |
| BmpImage(int, int) | ابدأ باستخدام الفئة BmpImage بسهولة عن طريق إنشاء نسخة جديدة مع تحديد معلمات العرض والارتفاع. مثالي للمطورين الذين يبحثون عن طريقة مريحة لإنشاء كائنات BmpImage بأبعاد مخصصة، مما يضمن المرونة وسهولة التكامل في مشاريعهم |
| BmpImage(int, int, ushort, IColorPalette) | ابدأ باستخدام الفئة BmpImage بسلاسة عن طريق تهيئة نسخة جديدة مع معلمات مثل العرض، الارتفاع، عمق البت، واللوحة. مثالي للمطورين الذين يبحثون عن طريقة مباشرة لإنشاء كائنات BmpImage بأبعاد وتكوينات ألوان مخصصة، مما يضمن المرونة والكفاءة في مشاريعهم |
| BmpImage(RasterImage, ushort, BitmapCompression, double, double) | ابدأ العمل مع الفئة BmpImage بسلاسة عن طريق إنشاء نسخة جديدة باستخدام rasterImage مع معلمات محددة مثل bitsPerPixel والضغط. مثالي للمطورين الذين يبحثون عن طريقة مباشرة للتعامل مع كائنات BmpImage، مما يضمن المرونة والكفاءة في مشاريعهم |
| BmpImage(Stream, ushort, BitmapCompression, double, double) | ابدأ العمل مع الفئة BmpImage بسلاسة عن طريق إنشاء نسخة جديدة باستخدام تدفق، مع معلمات محددة مثل bitsPerPixel والضغط. مثالي للمطورين الذين يبحثون عن طريقة مباشرة للتعامل مع كائنات BmpImage، مما يضمن المرونة والكفاءة في مشاريعهم |
| BmpImage(string, ushort, BitmapCompression, double, double) | أنشئ بسهولة نسخة جديدة من الفئة BmpImage باستخدام هذا المُنشئ، مع تحديد معلمات مثل المسار، bitsPerPixel، والضغط. مثالي للمطورين الذين يرغبون في تهيئة كائنات BmpImage بسرعة وكفاءة، مع تحكم دقيق في خصائص الصورة |
| BmpImage(int, int, ushort, IColorPalette, BitmapCompression, double, double) | أنشئ بسهولة نسخة جديدة من الفئة BmpImage باستخدام هذا المُنشئ، مع تحديد معلمات مثل العرض، الارتفاع، bitsPerPixel، واللوحة. مثالي للمطورين الذين يبحثون عن طريقة مريحة لإنشاء كائنات BmpImage بأبعاد وتكوينات ألوان مخصصة، مما يضمن المرونة وسهولة التكامل في مشاريعهم |
الخصائص
| الاسم | الوصف |
|---|---|
| AutoAdjustPalette { get; set; } | الحصول على أو تعيين قيمة تشير إلى ما إذا كان يتم تعديل اللوحة تلقائيًا. |
| virtual BackgroundColor { get; set; } | الحصول على أو تعيين قيمة للون الخلفية. |
| BitmapInfoHeader { get; } | احصل بسرعة على التفاصيل الأساسية حول صورة الـ bitmap الخاصة بك باستخدام هذه الدالة البسيطة. مثالي للمطورين الذين يحتاجون إلى استرجاع معلومات الرأس لصورهم |
| override BitsPerPixel { get; } | احصل بسهولة على عدد البتات لكل بكسل في الصورة باستخدام هذه الخاصية. مثالي للمطورين الذين يبحثون عن معلومات سريعة حول جودة وعمق الصورة |
| Bounds { get; } | الحصول على حدود الصورة. |
| BufferSizeHint { get; set; } | الحصول على أو تعيين تلميح حجم المخزن المؤقت الذي يحدد الحد الأقصى المسموح به لجميع المخازن الداخلية. |
| Compression { get; } | استرجع بسهولة نوع الضغط المستخدم في الصورة باستخدام هذه الخاصية. مثالي للمطورين الذين يحتاجون إلى الوصول السريع إلى معلومات حول ضغط الصورة |
| Container { get; } | الحصول على حاوية Image. |
| DataStreamContainer { get; } | الحصول على تدفق بيانات الكائن. |
| Disposed { get; } | يحصل على قيمة تشير إلى ما إذا كان هذا المثال تم التخلص منه. |
| ExifData { get; set; } | الحصول على أو تعيين بيانات Exif. |
| override FileFormat { get; } | استرجع بسهولة قيمة تنسيق الملف باستخدام هذه الخاصية سهلة الاستخدام. مثالي للمطورين الذين يبحثون عن وصول سريع إلى معلومات حول تنسيق الملف |
| override HasAlpha { get; } | يحصل على قيمة تشير إلى ما إذا كان هذا الكائن يحتوي على ألفا. |
| virtual HasBackgroundColor { get; set; } | الحصول على أو تعيين قيمة تشير إلى ما إذا كانت الصورة لها لون خلفية. |
| virtual HasTransparentColor { get; set; } | يحصل أو يعيّن قيمة تشير إلى ما إذا كان هذا RasterImage يحتوي على لون شفاف. |
| override Height { get; } | استرجع بسهولة ارتفاع الصورة باستخدام هذه الخاصية. مثالي للمطورين الذين يحتاجون إلى وصول سريع إلى معلومات حول أبعاد الصورة |
| override HorizontalResolution { get; set; } | تسمح لك هذه الخاصية بالحصول بسهولة أو ضبط الدقة الأفقية، المقاسة بالبكسل لكل بوصة، لكائن RasterImage. مثالي للمطورين الذين يحتاجون إلى تحكم دقيق في دقة الصورة لتطبيقاتهم |
| virtual ImageOpacity { get; } | الحصول على شفافية هذه الصورة. |
| InterruptMonitor { get; set; } | الحصول على أو تعيين مراقب المقاطعة. |
| override IsCached { get; } | الحصول على قيمة تشير إلى ما إذا كانت بيانات الصورة مخزنة مؤقتًا حاليًا. |
| IsRawDataAvailable { get; } | الحصول على قيمة تشير إلى ما إذا كان تحميل البيانات الخام متاحًا. |
| virtual Metadata { get; } | يحصل على بيانات تعريف الصورة. |
| Palette { get; set; } | يحصل أو يعيّن لوحة الألوان. لا تُستخدم لوحة الألوان عندما يتم تمثيل البكسلات مباشرةً. |
| virtual PremultiplyComponents { get; set; } | يحصل أو يعيّن قيمة تشير إلى ما إذا كان يجب ضرب مكونات الصورة مسبقًا. |
| RawCustomColorConverter { get; set; } | يحصل أو يعيّن محول الألوان المخصص |
| override RawDataFormat { get; } | احصل بسهولة على تنسيق البيانات الخام الخاصة بك باستخدام هذه الدالة سهلة الاستخدام. مثالي للمطورين الذين يرغبون في الوصول السريع إلى معلومات حيوية حول تنسيق بياناتهم |
| RawDataSettings { get; } | يحصل على إعدادات البيانات الخام الحالية. لاحظ أنه عند استخدام هذه الإعدادات يتم تحميل البيانات بدون تحويل. |
| RawFallbackIndex { get; set; } | يحصل أو يعيّن فهرس الاحتياطي للاستخدام عندما يكون فهرس اللوحة خارج النطاق. |
| RawIndexedColorConverter { get; set; } | يحصل أو يعيّن محول الألوان المفهرسة |
| override RawLineSize { get; } | احصل بسرعة على حجم كل سطر خام بالبايت باستخدام هذه الخاصية البسيطة. مثالي للمطورين الذين يحتاجون إلى معالجة فعالة للبيانات الخام للصورة |
| Size { get; } | يحصل على حجم الصورة. |
| virtual TransparentColor { get; set; } | يحصل على لون الشفافية في الصورة. |
| virtual UpdateXmpData { get; set; } | يحصل أو يعيّن قيمة تشير إلى ما إذا كان يجب تحديث بيانات التعريف XMP. |
| override UsePalette { get; } | يحصل على قيمة تشير إلى ما إذا كانت لوحة ألوان الصورة مستخدمة. |
| virtual UseRawData { get; set; } | يحصل أو يعيّن قيمة تشير إلى ما إذا كان يجب استخدام تحميل البيانات الخام عندما يكون تحميل البيانات الخام متاحًا. |
| override VerticalResolution { get; set; } | استرجع بسهولة أو اضبط الدقة العمودية، المقاسة بالبكسل لكل بوصة، لهذا الكائن RasterImage باستخدام هذه الخاصية. مثالي للمطورين الذين يتطلبون تحكمًا دقيقًا في دقة الصورة في تطبيقاتهم |
| override Width { get; } | احصل بسهولة على عرض الصورة باستخدام هذه الخاصية. مثالي للمطورين الذين يبحثون عن معلومات سريعة حول أبعاد الصورة |
| XmpData { get; set; } | يحصل أو يعيّن بيانات Xmp. |
الطرق
| الاسم | الوصف |
|---|---|
| override AdjustBrightness(int) | ضبط السطوع للصورة. |
| override AdjustContrast(float) | تباين الصورة |
| override AdjustGamma(float) | تصحيح جاما للصورة. |
| override AdjustGamma(float, float, float) | تصحيح جاما للصورة. |
| override AnalyzePercentageDigitalSignature(string) | يحسب نسبة التشابه بين البيانات المستخرجة وكلمة المرور الأصلية. |
| override AutoBrightnessContrast() | ينفّذ تعديلًا تلقائيًا متكيفًا للسطوع والتباين عبر الصورة بأكملها. |
| AutoRotate() | يقوم بتدوير الصورة تلقائيًا بناءً على بيانات الاتجاه المستخرجة من بيانات Exif. تضمن هذه الطريقة عرض الصور بالاتجاه الصحيح، مما يعزز تجربة المستخدم ويقضي على الحاجة إلى التعديلات اليدوية. من خلال تحليل معلومات Exif، يتم تدوير الصورة وفقًا لذلك، مما يوفر تجربة مشاهدة سلسة عبر مختلف المنصات والأجهزة. تبسط عملية التدوير الآلية معالجة الصور وتحسن قابلية الاستخدام العامة، خاصةً عند التعامل مع دفعات كبيرة من الصور ذات الاتجاهات المتنوعة. |
| override BinarizeBradley(double) | تحويل الصورة إلى ثنائية باستخدام خوارزمية العتبة التكيفية لبرايدلي باستخدام عتبة الصورة المتكاملة. |
| override BinarizeBradley(double, int) | تحويل الصورة إلى ثنائية باستخدام خوارزمية العتبة التكيفية لبرايدلي باستخدام عتبة الصورة المتكاملة. |
| override BinarizeFixed(byte) | تحويل الصورة إلى ثنائية باستخدام عتبة محددة مسبقًا |
| override BinarizeOtsu() | تحويل الصورة إلى ثنائية باستخدام عتبة Otsu |
| Blend(Point, RasterImage, byte) | يمزج هذه النسخة من الصورة مع الصورة overlay. |
| override Blend(Point, RasterImage, Rectangle, byte) | يمزج هذه النسخة من الصورة مع الصورة overlay. |
| override CacheData() | يقوم بتخزين البيانات مؤقتًا ويضمن عدم تحميل بيانات إضافية من DataStreamContainer الأساسي. |
| CanSave(ImageOptionsBase) | يحدد ما إذا كان يمكن حفظ الصورة بالتنسيق المحدد الممثل بخيارات الحفظ الممررة. |
| override Crop(Rectangle) | قص الصورة. |
| virtual Crop(int, int, int, int) | قص الصورة مع إزاحات. |
| Dispose() | يتخلص من المثيل الحالي. |
| Dither(DitheringMethod, int) | يقوم بأداء التمويه على الصورة الحالية. |
| override Dither(DitheringMethod, int, IColorPalette) | يقوم بأداء التمويه على الصورة الحالية. |
| override EmbedDigitalSignature(string) | إدراج توقيع رقمي بناءً على كلمة المرور المقدمة داخل الصورة باستخدام تقنية التضمين. |
| virtual Filter(Rectangle, FilterOptionsBase) | يفلتر المستطيل المحدد. |
| GetArgb32Pixel(int, int) | يحصل على بكسل صورة 32-بت ARGB. |
| GetDefaultArgb32Pixels(Rectangle) | يحصل على مصفوفة بكسلات 32-بت ARGB الافتراضية. |
| override GetDefaultOptions(object[]) | استرجع الخيارات الافتراضية بسهولة باستخدام هذه الطريقة المبسطة. مثالي للمطورين الذين يبحثون عن وصول سريع إلى إعدادات الصورة الافتراضية أو التكوينات. |
| GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader) | يحصل على مصفوفة البكسلات الافتراضية باستخدام محمل البكسل الجزئي. |
| GetDefaultRawData(Rectangle, RawDataSettings) | يحصل على مصفوفة البيانات الخام الافتراضية. |
| GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings) | يحصل على مصفوفة البيانات الخام الافتراضية باستخدام محمل البكسل الجزئي. |
| virtual GetModifyDate(bool) | يحصل على تاريخ ووقت آخر تعديل لصورة المورد. |
| virtual GetOriginalOptions() | يحصل على الخيارات بناءً على إعدادات الملف الأصلي. يمكن أن يكون هذا مفيدًا للحفاظ على عمق البت وغيرها من معلمات الصورة الأصلية دون تغيير. على سبيل المثال، إذا قمنا بتحميل صورة PNG بالأبيض والأسود بعمق 1 بت لكل بكسل ثم حفظناها باستخدام طريقة Save، سيتم إنتاج صورة PNG ناتجة بعمق 8 بت لكل بكسل. لتجنب ذلك وحفظ صورة PNG بعمق 1 بت لكل بكسل، استخدم هذه الطريقة للحصول على خيارات الحفظ المقابلة ومررها إلى طريقة Save كمعامل ثاني. |
| GetPixel(int, int) | يحصل على بكسل صورة. |
| virtual GetSerializedStream(ImageOptionsBase, Rectangle, out int) | يحول إلى aps. |
| GetSkewAngle() | يحصل على زاوية الانحراف. هذه الطريقة قابلة للتطبيق على المستندات النصية الممسوحة ضوئيًا، لتحديد زاوية الانحراف عند المسح. |
| override Grayscale() | تحويل الصورة إلى تمثيلها بتدرج الرمادي |
| override IsDigitalSigned(string, int) | يُجري فحصًا سريعًا لتحديد ما إذا كانت الصورة موقعة رقمياً، باستخدام كلمة المرور والحدّ المحدد. |
| LoadArgb32Pixels(Rectangle) | يحمّل بكسلات ARGB 32‑بت. |
| LoadArgb64Pixels(Rectangle) | يحمّل بكسلات ARGB 64‑بت. |
| LoadCmyk32Pixels(Rectangle) | يحمّل بكسلات بتنسيق CMYK. |
| LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader) | يحمّل بكسلات ARGB 32‑بت جزئيًا عن طريق الحزم. |
| LoadPartialArgb64Pixels(Rectangle, IPartialArgb64PixelLoader) | يحمّل بكسلات ARGB 64‑بت جزئيًا عن طريق الحزم. |
| LoadPartialPixels(Rectangle, IPartialPixelLoader) | يحمّل البكسلات جزئيًا عن طريق الحزم. |
| LoadPixels(Rectangle) | يحمّل البكسلات. |
| LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader) | يحمّل البيانات الخام. |
| LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader) | يحمّل البيانات الخام. |
| NormalizeAngle() | يضبط الزاوية. هذه الطريقة قابلة للتطبيق على مستندات النص الممسوحة ضوئياً للتخلص من الانحراف. تستخدم هذه الطريقة GetSkewAngle وRotate الطرق. |
| virtual NormalizeAngle(bool, Color) | يضبط الزاوية. هذه الطريقة قابلة للتطبيق على مستندات النص الممسوحة ضوئياً للتخلص من الانحراف. تستخدم هذه الطريقة GetSkewAngle وRotate الطرق. |
| override NormalizeHistogram() | يضبط هيستوجرام الصورة — يضبط قيم البكسل لاستخدام كامل النطاق المتاح. |
| ReadArgb32ScanLine(int) | يقرأ كامل سطر المسح وفقًا لفهرس سطر المسح المحدد. |
| ReadScanLine(int) | يقرأ كامل سطر المسح وفقًا لفهرس سطر المسح المحدد. |
| override RemoveMetadata() | يزيل بيانات التعريف الخاصة بهذه الصورة عن طريق تعيين قيمة XmpData إلى null. |
| ReplaceColor(Color, byte, Color) | يستبدل لونًا بآخر مع فرق مسموح ويحافظ على قيمة ألفا الأصلية لحفظ الحواف السلسة. |
| virtual ReplaceColor(int, byte, int) | يستبدل لونًا بآخر مع فرق مسموح ويحافظ على قيمة ألفا الأصلية لحفظ الحواف السلسة. |
| ReplaceNonTransparentColors(Color) | يستبدل جميع الألوان غير الشفافة بلون جديد ويحافظ على قيمة ألفا الأصلية لحفظ الحواف السلسة. ملاحظة: إذا استخدمتها على صور بدون شفافية، سيتم استبدال جميع الألوان بلون واحد. |
| virtual ReplaceNonTransparentColors(int) | يستبدل جميع الألوان غير الشفافة بلون جديد ويحافظ على قيمة ألفا الأصلية لحفظ الحواف السلسة. ملاحظة: إذا استخدمتها على صور بدون شفافية، سيتم استبدال جميع الألوان بلون واحد. |
| Resize(int, int) | يُعيد تحجيم الصورة. يتم استخدام NearestNeighbourResample الافتراضي. |
| override Resize(int, int, ImageResizeSettings) | تغيير حجم الصورة. |
| override Resize(int, int, ResizeType) | تغيير حجم الصورة. |
| ResizeHeightProportionally(int) | يُعيد تحجيم الارتفاع بنسبية. يتم استخدام NearestNeighbourResample الافتراضي. |
| virtual ResizeHeightProportionally(int, ImageResizeSettings) | يُعيد تحجيم الارتفاع بنسبية. |
| virtual ResizeHeightProportionally(int, ResizeType) | يُعيد تحجيم الارتفاع بنسبية. |
| ResizeWidthProportionally(int) | يقوم بتغيير عرض الصورة بشكل متناسب. يتم استخدام NearestNeighbourResample الافتراضي. |
| virtual ResizeWidthProportionally(int, ImageResizeSettings) | يقوم بتغيير عرض الصورة بشكل متناسب. |
| virtual ResizeWidthProportionally(int, ResizeType) | يقوم بتغيير عرض الصورة بشكل متناسب. |
| override Rotate(float) | دوّر الصورة حول المركز. |
| override Rotate(float, bool, Color) | دوّر الصورة حول المركز. |
| override RotateFlip(RotateFlipType) | يدور أو يقلب أو يدور ويقلب الصورة. |
| Save() | يحفظ بيانات الصورة إلى الدفق الأساسي. |
| Save(Stream) | يحفظ بيانات الكائن إلى الدفق المحدد. |
| override Save(string) | يحفظ الصورة إلى موقع الملف المحدد. |
| Save(Stream, ImageOptionsBase) | يحفظ بيانات الصورة إلى الدفق المحدد بالتنسيق الملف المحدد وفقًا لخيارات الحفظ. |
| virtual Save(string, bool) | يحفظ بيانات الكائن إلى موقع الملف المحدد. |
| virtual Save(string, ImageOptionsBase) | يحفظ بيانات الكائن إلى موقع الملف المحدد بالتنسيق الملف المحدد وفقًا لخيارات الحفظ. |
| override Save(Stream, ImageOptionsBase, Rectangle) | يحفظ بيانات الصورة إلى الدفق المحدد بالتنسيق الملف المحدد وفقًا لخيارات الحفظ. |
| virtual Save(string, ImageOptionsBase, Rectangle) | يحفظ بيانات الكائن إلى موقع الملف المحدد بالتنسيق الملف المحدد وفقًا لخيارات الحفظ. |
| SaveArgb32Pixels(Rectangle, int[]) | يحفظ بكسلات ARGB 32 بت. |
| SaveCmyk32Pixels(Rectangle, int[]) | يحفظ البكسلات. |
| SavePixels(Rectangle, Color[]) | يحفظ البكسلات. |
| SaveRawData(byte[], int, Rectangle, RawDataSettings) | يحفظ البيانات الخام. |
| SetArgb32Pixel(int, int, int) | يضبط بكسل صورة ARGB 32 بت للموقع المحدد. |
| override SetPalette(IColorPalette, bool) | يضبط لوحة ألوان الصورة. |
| SetPixel(int, int, Color) | يضبط بكسل الصورة للموقع المحدد. |
| override SetResolution(double, double) | قم بضبط دقة الـRasterImage بسهولة باستخدام هذه الطريقة السهلة الاستخدام. مثالي للمطورين الذين يبحثون عن تحكم دقيق في دقة الصورة في تطبيقاتهم. |
| override ToBitmap() | حوّل صورتك النقطية بسهولة إلى bitmap باستخدام هذه الطريقة البسيطة. مثالي للمطورين الذين يحتاجون إلى الانتقال بسلاسة بين صيغ الصور المختلفة. |
| virtual TrySetMetadata(IImageMetadataFormat) | يحاول تعيين كائن metadata، إذا كان هذا Image يدعم ويطبق نوع IImageMetadataFormat. |
| WriteArgb32ScanLine(int, int[]) | يكتب كامل سطر المسح إلى فهرس سطر المسح المحدد. |
| WriteScanLine(int, Color[]) | يكتب كامل سطر المسح إلى فهرس سطر المسح المحدد. |
أمثلة
فك ضغط صورة BMP التي تم ضغطها مسبقًا باستخدام خوارزمية ضغط DXT1.
[C#]
using (var image = Image.Load("CompressedTiger.bmp"))
{
image.Save("DecompressedTiger.bmp", new BmpOptions());
}
ضغط صورة BMP باستخدام خوارزمية ضغط DXT1.
[C#]
using (var image = Image.Load("Tiger.bmp"))
{
image.Save("CompressedTiger.bmp", new BmpOptions { Compression = BitmapCompression.Dxt1 });
}
يوضح المثال كيفية إزالة أي كائن من الصورة باستخدام Graphics Path مع خوارزمية Telea.
[C#]
var imageFilePath = "ball.png";
using (var image = Image.Load(imageFilePath))
{
var pngImage = (PngImage)image;
var mask = new GraphicsPath();
var firstFigure = new Figure();
firstFigure.AddShape(new EllipseShape(new RectangleF(350, 170, 570 - 350, 400 - 170)));
mask.AddFigure(firstFigure);
var options = new TeleaWatermarkOptions(mask);
var result = WatermarkRemover.PaintOver(pngImage, options);
result.Save(outputPath);
}
يوضح المثال كيفية تصدير BmpImage بنوع الضغط Rgb.
[C#]
string sourcePath = "input.png";
// حمِّل صورة PNG من ملف.
using (Image pngImage = Image.Load(sourcePath))
{
// يتم حفظ صورة BMP بدعم الشفافية افتراضيًا، ويتم ذلك باستخدام طريقة الضغط BitmapCompression.Bitfields.
// لحفظ صورة BMP باستخدام طريقة الضغط Rgb، يجب تحديد BmpOptions مع خاصية Compression مضبوطة على BitmapCompression.Rgb.
pngImage.Save(outputPath, new BmpOptions() { Compression = BitmapCompression.Rgb });
}
يوضح المثال كيفية إزالة أي كائن من الصورة باستخدام Graphics Path مع خوارزمية Content Aware fill.
[C#]
var imageFilePath = "ball.png";
using (var image = Image.Load(imageFilePath))
{
var pngImage = (PngImage)image;
var mask = new GraphicsPath();
var firstFigure = new Figure();
firstFigure.AddShape(new EllipseShape(new RectangleF(350, 170, 570 - 350, 400 - 170)));
mask.AddFigure(firstFigure);
var options = new ContentAwareFillWatermarkOptions(mask)
{
MaxPaintingAttempts = 4
};
var result = WatermarkRemover.PaintOver(pngImage, options);
result.Save(outputPath);
}
يوضح المثال التالي كيفية إنشاء صورة BMP بالحجم المحدد.
[C#]
string dir = "c:\\temp\\";
// أنشئ صورة BMP بحجم 100 × 100 بكسل.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// املأ الصورة بتدرج خطي بسيط من الأحمر إلى الأسود.
int width = bmpImage.Width;
int height = bmpImage.Height;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
int hue = (255 * x) / width;
bmpImage.SetPixel(x, y, Aspose.Imaging.Color.FromArgb(255, hue, 0, 0));
}
}
using (System.IO.FileStream stream = new System.IO.FileStream(dir + "output.bmp", System.IO.FileMode.Create))
{
bmpImage.Save(stream);
}
}
يوضح المثال كيفية تصدير BmpImage من ملف Png مع الحفاظ على قناة ألفا، وحفظ ملف Bmp مع الشفافية.
[C#]
string sourcePath = "input.png";
// حمِّل صورة PNG من ملف.
using (Image pngImage = Image.Load(sourcePath))
{
// يتم حفظ صورة BMP بدعم الشفافية افتراضيًا.
// إذا كنت ترغب في تحديد هذا الوضع صراحةً، يجب ضبط خاصية Compression في BmpOptions على BitmapCompression.Bitfields.
// طريقة الضغط BitmapCompression.Bitfields هي طريقة الضغط الافتراضية في BmpOptions.
// لذلك يمكن تحقيق نفس نتيجة تصدير صورة Bmp مع الشفافية إما بإحدى الطرق التالية.
// مع خيارات افتراضية ضمنية:
pngImage.Save(outputPath);
// مع خيارات افتراضية صريحة:
pngImage.Save(outputPath, new BmpOptions());
// تحديد طريقة الضغط BitmapCompression.Bitfields:
pngImage.Save(outputPath, new BmpOptions() { Compression = BitmapCompression.Bitfields });
}
انظر أيضًا
- class RasterCachedImage
- namespace Aspose.Imaging.FileFormats.Bmp
- assembly Aspose.Imaging