یک بیت مپ برای ایجاد و ذخیره گرافیک کامپیوتری استفاده می شود. تصاویر بیت مپ به طور گسترده در صفحات وب و دستگاه های دیجیتال مانند دوربین ها، تلفن های هوشمند و غیره استفاده می شود. رایج ترین انواع فایل های گرافیکی بیت مپ عبارتند از BMP، GIF، PNG و . JPEG. در این مقاله با نحوه ایجاد یک بیت مپ در سی شارپ آشنا می شویم.
موضوعات زیر باید در این مقاله پوشش داده شود:
- C# API برای ایجاد، بارگیری، پر کردن، و ترسیم Bitmap
- ایجاد یک بیت مپ جدید از ابتدا
- ایجاد یک بیت مپ از بایت آرایه
- ذخیره بیت مپ به عنوان فایل تصویری
- طراحی اشکال بر روی بیت مپ
- متن روی تصویر Bitmap رسم کنید
- بیت مپ را با رنگ ثابت پر کنید
- بارگیری یک تصویر در Bitmap
- تغییر اندازه یک تصویر موجود با استفاده از Bitmap
C# API برای ایجاد، بارگیری، پر کردن و ترسیم Bitmap - دانلود رایگان
برای ایجاد یک بیت مپ، از API Aspose.Drawing for .NET استفاده خواهیم کرد. این یک کتابخانه گرافیکی دوبعدی بین پلتفرمی برای ترسیم متن، هندسه و تصاویر به صورت برنامهریزی شده است. این اجازه می دهد تا بارگیری، ذخیره و دستکاری فرمت های فایل پشتیبانی شده.
لطفاً یا DLL API را دانلود کنید یا آن را با استفاده از NuGet نصب کنید.
PM> Install-Package Aspose.Drawing
ایجاد یک بیت مپ جدید در سی شارپ
با دنبال کردن مراحل زیر می توانیم یک بیت مپ جدید از ابتدا ایجاد کنیم:
- ابتدا یک بیت مپ جدید با استفاده از کلاس Bitmap با اندازه و فرمت مشخص شده ایجاد کنید.
- سپس، یک شی Graphics جدید از شی Bitmap با استفاده از متد FromImage() ایجاد کنید.
- سپس، یک شی کلاس Pen را با رنگ و اندازه مشخص شده مقداردهی اولیه کنید.
- پس از آن، متد DrawEllipse() را فراخوانی کنید تا بیضی با اندازه مشخص ترسیم شود.
- در نهایت با استفاده از متد Save() تصویر خروجی را ذخیره کنید.
نمونه کد زیر نحوه ایجاد یک بیت مپ جدید در سی شارپ را نشان می دهد.
// این مثال کد نحوه ایجاد یک بیت مپ جدید به صورت برنامه نویسی در سی شارپ را نشان می دهد.
// شی Bitmap را راه اندازی کنید
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// یک گرافیک جدید ایجاد کنید
Graphics graphics = Graphics.FromImage(bitmap);
// یک قلم را مقدار دهی اولیه کنید
Pen pen = new Pen(Color.Red, 5);
// یک مستطیل بکشید
graphics.DrawEllipse(pen, new Rectangle(0, 0, 700, 700));
// فایل را ذخیره کنید
bitmap.Save(@"C:\Files\Drawings\output.png");
ایجاد یک بیت مپ از آرایه بایت در سی شارپ
با دنبال کردن مراحل زیر میتوانیم یک بیت مپ از بایتهای جریان حافظه ایجاد کنیم:
- فایل تصویر را در یک آرایه بایت بخوانید.
- یک نمونه جدید از MemoryStream با استفاده از شی آرایه بایت ایجاد کنید.
- یک بیت مپ جدید با استفاده از کلاس Bitmap با شی MemoryStream ایجاد کنید.
- در نهایت با استفاده از متد Save() تصویر را ذخیره کنید.
نمونه کد زیر نحوه ایجاد یک بیت مپ از آرایه بایت با استفاده از MemoryStream در سی شارپ را نشان می دهد.
// این مثال کد نحوه ایجاد یک بیت مپ جدید از بایت های جریان حافظه در سی شارپ را نشان می دهد.
// تصویر را بارگذاری کنید و تمام بایت ها را بخوانید
var file = File.ReadAllBytes(@"C:\Files\Drawings\sample.jpg");
// ایجاد جریان حافظه
MemoryStream stream = new MemoryStream(file);
// یک بیت مپ جدید ایجاد کنید
Bitmap bitmap = new Bitmap(stream);
// فایل را ذخیره کنید
bitmap.Save(@"C:\Files\Drawings\output.jpg");
سی شارپ Bitmap را در یک فایل ذخیره کنید
با دنبال کردن مراحلی که قبلا ذکر شد، میتوانیم تصویر بیت مپ را در یک فایل در فرمتهای فایل پشتیبانی شده مختلف ذخیره کنیم. با این حال، ما فقط باید پسوند فرمت فایل ذخیره مورد نظر را در هنگام ذخیره فایل تصویری با استفاده از روش Save(string filename, ImageFormat format) در مرحله آخر ذکر کنیم.
- یک بیت مپ را به عنوان یک فایل BMP ذخیره کنید
bitmap.Save(@"C:\Files\output.bmp", ImageFormat.Bmp);
- یک بیت مپ را به عنوان یک فایل PNG ذخیره کنید
bitmap.Save(@"C:\Files\output.png", ImageFormat.Png);
- یک بیت مپ را به عنوان یک فایل JPG ذخیره کنید
bitmap.Save(@"C:\Files\output.jpg", ImageFormat.Jpeg);
- یک بیت مپ را به عنوان یک فایل GIF ذخیره کنید
bitmap.Save(@"C:\Files\output.gif", ImageFormat.Gif);
C# روی بیت مپ رسم کنید
با دنبال کردن مراحلی که قبلا ذکر شد میتوانیم اشکال و تصاویر مختلفی را روی یک بیت مپ رسم کنیم. با این حال، ما فقط باید از روش های خاص شکل برای ترسیم اشکال مورد نظر استفاده کنیم.
ما می توانیم با استفاده از روش های خاص ارائه شده برای ترسیم روی bitmap، اشکال زیر را ترسیم کنیم:
- Arc: می توانیم با استفاده از روش DrawArc() یک Arc رسم کنیم.
- Bezier: میتوانیم یک Bezier را با استفاده از روش DrawBezier() ترسیم کنیم.
- یک سری اسپلاین های Bézier: با استفاده از روش DrawBeziers() می توانیم یک سری از spline های Bezier ترسیم کنیم.
- منحنی: می توانیم با استفاده از روش DrawCurve() یک شکل منحنی رسم کنیم.
- ClosedCurve: میتوانیم یک منحنی بسته را با استفاده از روش DrawClosedCurve() رسم کنیم.
- بیضی: می توانیم با استفاده از روش DrawEllipse() یک بیضی رسم کنیم.
- خط: می توانیم با استفاده از روش DrawLine() یک خط رسم کنیم.
- یک سری خطوط: با استفاده از روش DrawLines() می توانیم یک سری خطوط رسم کنیم.
- مسیر: میتوانیم با استفاده از متد DrawPath() یک مسیر ترسیم کنیم.
- Pie: می توانیم با استفاده از روش DrawPie() یک Pie رسم کنیم.
- چند ضلعی: می توانیم با استفاده از روش DrawPolygon() یک Polygon رسم کنیم.
- Rectangle: می توانیم با استفاده از روش DrawRectangle() یک مستطیل رسم کنیم.
- یک سری از مستطیل ها: می توانیم با استفاده از روش DrawRectangles() یک سری مستطیل رسم کنیم.
با استفاده از روش های زیر می توانیم تصاویر را روی بیت مپ ترسیم کنیم:
- نماد: میتوانیم تصویری که توسط نماد مشخص شده نشان داده شده است را در ناحیه مشخص شده توسط ساختار مستطیل با استفاده از روش DrawIcon() بکشیم.
- تصویر: ما می توانیم هر تصویر مشخص شده را با استفاده از روش DrawImage() ترسیم کنیم.
سی شارپ متن را روی بیت مپ بکشید
با دنبال کردن مراحل زیر می توانیم هر رشته ای را روی یک بیت مپ رسم کنیم:
- ابتدا یک بیت مپ جدید با استفاده از کلاس Bitmap با اندازه مشخص شده ایجاد کنید.
- سپس، یک شی Graphics جدید از شی Bitmap با استفاده از متد FromImage() ایجاد کنید.
- سپس یک شی کلاس Font با خانواده فونت، سبک و اندازه دلخواه تعریف کنید.
- در همین حال، یک شی SolidBrush را با رنگ مشخص شده مقداردهی اولیه کنید.
- پس از آن، متد DrawString() را با متن برای نشان دادن اشیاء، فونت و Brush به عنوان آرگومان فراخوانی کنید.
- در نهایت با استفاده از متد Save() تصویر خروجی را ذخیره کنید.
نمونه کد زیر نحوه رسم متن روی بیت مپ در سی شارپ را نشان می دهد.
// این مثال کد نشان می دهد که چگونه می توان یک متن را روی یک بیت مپ جدید به صورت برنامه نویسی در سی شارپ ترسیم کرد.
// شی Bitmap را راه اندازی کنید
Bitmap bitmap = new Bitmap(500,200);
// یک گرافیک جدید ایجاد کنید
Graphics graphics = Graphics.FromImage(bitmap);
// یک فونت را راه اندازی کنید
var font = new Font(FontFamily.GenericSerif, 40f, FontStyle.Bold);
// یک برس را راه اندازی کنید
var brush = new SolidBrush(Color.Red);
// یک مستطیل بکشید
graphics.DrawString("Welcome to Bitmap!", font, brush, 10, 20);
// فایل را ذخیره کنید
bitmap.Save(@"C:\Files\Drawings\output.png", ImageFormat.Png);
یک بیت مپ را با رنگ جامد در سی شارپ پر کنید
میتوانیم یک بیت مپ را با یک رنگ ثابت با استفاده از یک مستطیل پر شده پر کنیم و با دنبال کردن مراحل زیر آن را در یک بیت مپ جدید ذخیره کنیم:
- ابتدا یک بیت مپ جدید با استفاده از کلاس Bitmap با اندازه مشخص شده ایجاد کنید.
- سپس، یک شی Graphics جدید از شی Bitmap با استفاده از متد FromImage() ایجاد کنید.
- سپس، یک شی کلاس Rectangle را با مکان و اندازه مشخص شده مقداردهی اولیه کنید.
- پس از آن، متد FillRectangle() را با رنگ قلم مو و Rectangle فراخوانی کنید.
- در نهایت با استفاده از متد Save() تصویر خروجی را ذخیره کنید.
نمونه کد زیر نشان می دهد که چگونه یک بیت مپ را با یک رنگ ثابت با استفاده از یک مستطیل در سی شارپ پر کنید.
// این مثال کد نحوه ایجاد یک بیت مپ جدید با مستطیل پر شده در سی شارپ را نشان می دهد.
// بیت مپ را با اندازه مشخص راه اندازی کنید
Bitmap bitmap = new Bitmap(500, 500);
// یک گرافیک جدید ایجاد کنید
Graphics graph = Graphics.FromImage(bitmap);
// یک مستطیل تعریف کنید
Rectangle ImageSize = new Rectangle(0, 0, 500, 500);
// یک مستطیل پر رسم کنید
graph.FillRectangle(Brushes.Gray, ImageSize);
// فایل را ذخیره کنید
bitmap.Save(@"C:\Files\Drawings\output.png");
بارگذاری تصویر در Bitmap با استفاده از C#
ما همچنین می توانیم یک تصویر موجود را در یک بیت مپ بارگذاری کنیم و با دنبال کردن مراحل زیر آن را به عنوان یک بیت مپ جدید ذخیره کنیم:
- ابتدا یک تصویر را با استفاده از کلاس Bitmap بارگذاری کنید.
- سپس با استفاده از کلاس Bitmap با اندازه مشخص شده یک بیت مپ جدید ایجاد کنید.
- سپس، با استفاده از متد FromImage() یک شی Graphics جدید از شی Bitmap جدید ایجاد کنید.
- پس از آن، متد DrawImage() را با مختصات تصویر و مکان به عنوان آرگومان فراخوانی کنید.
- در نهایت با استفاده از متد Save() تصویر خروجی را ذخیره کنید.
نمونه کد زیر نحوه بارگذاری یک تصویر را در یک بیت مپ با استفاده از C# نشان می دهد.
// این مثال کد نشان می دهد که چگونه یک تصویر را در یک بیت مپ بارگذاری کنید و به عنوان یک بیت مپ جدید ذخیره کنید.
// بارگذاری تصویر:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");
// بیت مپ را با اندازه مشخص راه اندازی کنید
Bitmap bitmap = new Bitmap(1000, 1000);
// یک گرافیک جدید ایجاد کنید
Graphics graphics = Graphics.FromImage(bitmap);
// رسم تصویر در مکان مشخص شده
graphics.DrawImage(image, 10, 10);
// فایل را ذخیره کنید
bitmap.Save(@"C:\Files\Drawings\output.png");
نحوه تغییر اندازه تصویر با استفاده از Bitmap در سی شارپ
ما می توانیم یک تصویر موجود را در یک بیت مپ بارگذاری و اندازه آن را تغییر دهیم و با دنبال کردن مراحل زیر آن را به عنوان یک بیت مپ جدید ذخیره کنیم:
- یک تصویر موجود را با استفاده از کلاس Bitmap بارگیری کنید.
- با استفاده از کلاس Bitmap با تصویر بارگذاری شده و اندازه مشخص شده یک بیت مپ جدید ایجاد کنید.
- در نهایت با استفاده از متد Save() تصویر خروجی را ذخیره کنید.
نمونه کد زیر نحوه تغییر اندازه یک تصویر موجود و ذخیره آن به عنوان یک بیت مپ جدید در سی شارپ را نشان می دهد.
// این مثال کد نحوه ایجاد تغییر اندازه یک تصویر موجود و ایجاد یک بیت مپ جدید در سی شارپ را نشان می دهد.
// بارگذاری تصویر:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");
// یک بیت مپ جدید به اندازه نصف تصویر بارگذاری شده ایجاد کنید:
Bitmap bitmap = new Bitmap(image, (int)(image.Width * 0.5), (int)(image.Height * 0.5));
// فایل را ذخیره کنید
bitmap.Save(@"C:\Files\Drawings\output.jpg");
مجوز موقت رایگان دریافت کنید
برای امتحان Aspose.Drawing برای دات نت بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.
نتیجه
در این مقاله یاد گرفتیم که چگونه:
- ایجاد یک بیت مپ جدید؛
- رسم مستطیل، بیضی، و غیره بر روی یک بیت مپ.
- بارگذاری یک تصویر موجود؛
- تغییر اندازه یک تصویر موجود و ایجاد یک بیت مپ جدید با اندازه جدید.
- ذخیره یک تصویر بیت مپ از MemoryStream یا آرایه بایتی در یک فایل.
- عرض و ارتفاع یک بیت مپ را در سی شارپ تنظیم کنید.
علاوه بر ایجاد یک بیت مپ جدید در C#، می توانید با استفاده از documentation درباره Aspose.Drawing برای دات نت اطلاعات بیشتری کسب کنید و ویژگی های مختلف پشتیبانی شده توسط API را بررسی کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در [تالار گفتمان پشتیبانی رایگان35 تماس بگیرید.