PDA

View Full Version : تغییر تصویر بک گروند ویندوز



javad_hosseiny
شنبه 04 خرداد 1387, 09:17 صبح
در قسمتی از برنامه گالری تصاویر به دنبال اضافه کردن قابلیت های همچون ذخیره تصاویر و یا نمایش تصاویر به صورت اسلاید و ... بودم
من جمله قابلیتهایی که می خواستم اضافه کنم امکان انتخاب تصویر موردنمایش در گالری به عنوان تصویر بک گروند (Wallpaper windows) بود
بعد از کمی سرچ و ... نمونه کد api آن که کد SystemParametersInfo بود پیدا کردم ولی متاسفانه هر چی مثال و .. برای زبان های وی بی ، سی شارپ و .. بود و یا چند مورد dll و ocx پیدا کردم ولی وقتی میشد بدون اونها کار کرد یه کم دلچسب نبود برای این قابلیت ، فایلی رو به اصل برنامه اضافه بکنیم ، خلاصه بعد از کلی دردسر نمونه مثال دلفی آن را پیدا کردم و توانستم به فاکس تبدیلش کنم.
حالا وقتی تو برنامه گذاشتم متوجه اشکال دوم شدم که این کد api (والبته تمامی برنامه های مشابه که قابلیت تغییر کاغذدیواری ویندوز را دارند) تنها قادر به ساپورت تصاویر bmp هست و سایر فورمت ها را قبول نمیکند
بعد از چک مختصر در رجیستری به هنگام قرار دادن فورمتهای دیگری تصویری همچون jpeg,gif,... متوجه شدم که سیستم از روی آن یک فورمت bmp تهیه کرده و سپس آن را به عنوان بک گروند ویندوز قرار می دهد.
پس مجبور شدم به دنبال چنین قابلیتی در برنامه خود باشم خوشبختانه gdi+ خیلی از مشکلات مربوط به کار با گرافیک و تصاویر رو حل کرده ولی متاسفانه مثالهایش برای زبانهای دیگر بیشتر است .
خلاصه پس از کامل شدن داستان ، گفتم شاید روزی دوستی دیگر به دنبال این موضوع باشد و بخواهد چنین قابلیتی به برنامه خود اضافه کند، لذا سورس کد خود را جهت استفاده در این قسمت قرار دادم.

rahro
شنبه 04 خرداد 1387, 12:27 عصر
فكر كنم يه چيزهايي كم و كسر داره در حال حاضر تابع FSIS رو.!

javad_hosseiny
شنبه 04 خرداد 1387, 16:22 عصر
بله حق با شماست (البته همان تابع معروف fsis (معکوس سازی رشته) هست که در تابع بدست آوردن پسوند فایل از آن استفاده شده و به علت موجود بودن در مسیر اصلی برنامه، بنده به هنگام آپلود به آن دقت نکرده بودم)
همان فایل پست اول اصلاح شد

kia1349
شنبه 04 خرداد 1387, 17:56 عصر
کلا سايت http://weblogs.foxite.com/vfpimaging//default.aspx مربوط به آقاي Cesar Chalom يکي از بهترين منابع براي کار با تصاوير و قابليتهاي نهفته در gdi+ ميباشد

javad_hosseiny
شنبه 04 خرداد 1387, 19:41 عصر
موارد مختلف در وبلاگها و ... جهت نگاهی متفاوت به قابلیتهای gdi+
http://gpimage2.googlepages.com/gpimage2faqs#ChangeFormat

http://cchalom.sites.uol.com.br/GPIMAGE/faqs.htm

http://www.codeplex.com/Wiki/View.aspx?ProjectName=VFPX&title=GDIPlusX