
لینک کوتاه : https://magicfile.ir/?p=4713
تبدیل فایلهای BMP به نمودار یا سلولهای اکسل (BMP Convert XLS)
BMPConvert دو فایل اکسلِ ماکروباز (Macro-Enabled Workbooks) است که یک تصویر BMP معمولی را به دو روش وارد اکسل میکند:
-
بهصورت نمودار XY-Scatter که هر «پیکسل» تصویر را بهصورت یک نقطه (Marker) روی نمودار ترسیم میکند.
-
بهصورت رنگآمیزی مستقیم سلولهای شیت بهنحوی که هر سلول نمایندهٔ یک پیکسل باشد.
این پروژه برای نمایش/بازآفرینی تصاویر کمرنگ در اکسل بسیار جالب است و علاوه بر کاربردهای آموزشی، برای ساخت هنر پیکسلی (Pixel Art) و بازنمایی لوگوها نیز استفاده میشود.
نمونه تصاویر در زمان اجرا
این ابزار دقیقاً چه میکند؟
-
خواندن فایل BMP و تحلیل رنگها (Color Analysis).
-
تبدیل تصویر به نقاط رنگی روی نمودار XY-Scatter (هر نقطه با مختصات X,Y متناظر با سطر/ستون پیکسل) یا به سلولهای رنگآمیزیشده در شیت.
-
اگر تصویر ۵۶ رنگِ منحصربهفرد یا کمتر داشته باشد، نسخهٔ نموداری بدون مشکل آن را ترسیم میکند. (این محدودیت به مدل رنگ/پالت در پیادهسازی اصلی برمیگردد.)
-
برای پر شدن کامل «شبکهٔ نقاط» و جلوگیری از سفیدیهای بین پیکسلها، میتوانید اندازهٔ Marker نمودار را افزایش دهید؛ یا اگر همپوشانی ایجاد شد، اندازهٔ تصویر/Marker را کاهش دهید. در نسخهٔ سلولی، دقت پیکسلها با تغییر اندازهٔ سطر/ستونها حاصل میشود.
پیشنیازها و سازگاری
-
نیازمند Microsoft Excel دسکتاپ با فعال بودن ماکروها است (Windows یا Mac). در Trust Center اکسل، گزینهٔ اجرای ماکروها باید مجاز باشد.
-
فرمت ورودی باید BMP باشد. (برای تبدیل PNG/JPG به BMP میتوانید از Paint ویندوز یا هر ویرایشگر تصویر استفاده کنید.)
-
برای کارایی بهتر، اندازهٔ تصویر را کوچک و تعداد رنگها را محدود نگه دارید (مثلاً لوگوها یا آیکونها با رنگهای کم).
نکتهٔ فنی: دلیل انتخاب BMP این است که ساختار این فرمت ساده و خطی است و برای خواندن بایتهای رنگ با VBA بسیار سرراست عمل میکند. (توضیح فنی/تحلیلی)
آموزش گامبهگام (نسخهٔ نموداری – XY-Scatter)
-
دانلود و Extract: فایل
bmp2chart.zip
را از لینک بالا دریافت و از حالت فشرده خارج کنید. -
باز کردن در اکسل: فایل اکسل را باز و Enable Macros را تأیید کنید.
-
انتخاب فایل تصویر BMP: از دکمه/ماکرو موجود برای انتخاب تصویر استفاده کنید.
-
تحلیل و ترسیم: ماکرو تصویر را میخواند و نقاط رنگی را بهصورت سریهای داده/نقاط روی نمودار XY رسم میکند.
-
تنظیمات نمایش:
-
Marker Size را زیاد/کم کنید تا «پیکسلها» بدون فضای خالی نمایان شوند.
-
Plot Area را طوری تغییر دهید که نسبت تصویر حفظ شود و «Banding» یا نوارهای فاصلهدار به حداقل برسد.
-
-
ذخیرهٔ خروجی: نمودار را بهصورت تصویر (Copy as Picture) یا PDF ذخیره کنید.
آموزش گامبهگام (نسخهٔ سلولها – Worksheet Cells)
-
دانلود و Extract: فایل
bmp2cells.zip
را دریافت و از حالت فشرده خارج کنید. -
Enable Macros و اجرای ماکرو.
-
انتخاب تصویر BMP.
-
تبدیل به سلولها: ماکرو با پیمایش پیکسلها، .Interior.Color سلولهای شیت را مطابق RGB هر پیکسل تنظیم میکند.
-
تنظیم نسبت پیکسل: ارتفاع ردیفها و عرض ستونها را طوری تنظیم کنید که هر سلول مربعِ هماندازه شود (مثلاً Column Width ≈ Row Height).
-
ذخیرهٔ خروجی: شیت را نگهدارید یا به PDF/تصویر صادر کنید (Print to PDF/Export).
نکات کلیدی و محدودیتها
-
حداکثر ۵۶ رنگ منحصربهفرد برای نسخهٔ نموداری توصیه/لازم است. اگر تصویر شما بیش از این رنگ دارد:
-
تصویر را کوچکتر و با پالت محدودتر خروجی بگیرید (BMP با ۲۵۶ رنگ یا ۱۶ رنگ؛ کاهش رنگها با حذف Dithering).
-
یا از نسخهٔ سلولها استفاده کنید که روی جزئیات رنگی حساسیت کمتری دارد اما از نظر کارایی سنگینتر است.
-
-
کارایی: تصاویر بزرگ (مثلاً 200×200 پیکسل = 40,000 نقطه/سلول) باعث افت سرعت میشوند. بهتر است در حد ≤ 100×100 یا کمتر باقی بمانید، مگر اینکه سیستم قدرتمندی داشته باشید.
-
حفظ نسبت تصویر: در نمودار، نسبت محور X/Y را برابر تنظیم کنید (Scale یکسان) تا تصویر کشیده/فشرده نشود.
کاربردهای پیشنهادی
-
آموزش VBA: آرایهها، حلقهها، خواندن فایلهای باینری، نقشهبرداری رنگها.
-
هنر پیکسلی/لوگو: خلق Pixel Art یا تبدیل لوگوهای کمرنگ به طرحهای سلولی در اکسل.
-
Visualization خلاقانه: نمایش تصاویر به شکل دادهمحور روی نمودارها.
رفع اشکال (Troubleshooting)
-
ماکرو اجرا نمیشود: از مسیر File > Options > Trust Center > Trust Center Settings > Macro Settings اجرای ماکروها را فعال کنید.
-
تصویر ترسیم نمیشود یا ناقص است: تعداد رنگها را کاهش دهید (≤ ۵۶ رنگ) و اندازهٔ Marker را تنظیم کنید.
-
باندینگ/فضای خالی بین نقاط: Marker را بزرگتر یا Plot Area را کوچکتر کنید؛ یا تصویر را با ابعاد کمتر بارگذاری کنید.
-
کندی شدید در نسخهٔ سلولی: ابعاد تصویر را کم کنید یا شیت را به چند بخش تقسیم کنید.
نکات فنی برای علاقهمندان VBA
این بخش برای توضیح منطق کلی است و کد اصلی ممکن است متفاوت باشد.
-
خواندن BMP: بازکردن فایل در حالت باینری، خواندن Header (اطلاعات ابعاد و عمق رنگ)، سپس خواندن Pixel Data سطر به سطر.
-
نگاشت پیکسل → نمودار: تعیین مختصات
X = ستون
وY = ردیف
برای هر پیکسل و افزودن نقطه با رنگ متناظر. (در نسخهٔ اصلی محدودیت رنگ به ۵۶ رنگ اشاره شده است.) -
نگاشت پیکسل → سلول: حلقهٔ دوبعدی روی سطر/ستونها و انتساب
Cells(r, c).Interior.Color = RGB(R, G, B)
.
نمونهٔ شبهکد برای نسخهٔ سلولی
Sub BmpToCellsSkeleton()
Dim r As Long, c As Long
' فرض: آرایهای از RGBها با ابعاد Height×Width از تصویر BMP خوانده شده
For r = 1 To Height
For c = 1 To Width
Cells(r, c).Interior.Color = RGB(Arr(r, c).R, Arr(r, c).G, Arr(r, c).B)
Next c
Next r
End Sub
راهنمای تکمیلی: تبدیل فرمت به BMP
اگر تصویر شما PNG/JPG است:
-
روی فایل راستکلیک کنید و با Paint (ویندوز) باز کنید.
-
از منوی File > Save As، گزینهٔ BMP Picture را انتخاب کنید.
-
برای کاهش تعداد رنگها، یکی از حالتها (مانند 16 Color Bitmap یا 256 Color Bitmap) را انتخاب کنید و Dithering را غیرفعال نگه دارید.
جمعبندی
BMPConvert یک نمونهٔ جذاب و آموزشی برای نمایش تصاویر کمرنگ در اکسل است؛ هم بهصورت نمودار XY-Scatter و هم از طریق رنگآمیزی سلولها. با رعایت محدودیت ≤ ۵۶ رنگ (برای نسخهٔ نموداری) و کوچک نگهداشتن ابعاد تصویر، خروجی تمیز، قابل انتشار و سرگرمکنندهای خواهید داشت.