PDA

View Full Version : مشکل با عکسهای gif , png



Nasim_m
سه شنبه 22 مرداد 1387, 23:25 عصر
چگونه می توان در vs2005 عکسی با زمینه شیشه ای (transparent) داشت؟
هنگام نمایش این نوع عکسها در vs2005 به جای زمینه شیشه ای زمینه آبی رنگی نمایش داده می شود البته همان عکس ها در VS2008 درست نشان داده می شوند.

ehsan2007
چهارشنبه 23 مرداد 1387, 00:07 صبح
دوست عزیز به ویژوال استدیو شما مربوط نمیشه به مرورگر شما مربوط میشه
توی ie6به پایین عکس های pngبا زمینه آبی میبینید یعنی همون شیشه ای خودمون نیست و باید از فیلتر های میکروسافت استفاده کنیم ولی چون مرورگرهای دیگه مثل فایر فکی یا opera هیچ کدوم از فیلتر های میکروسافت پیروی نکردن میکروسافت تصمیم گرفت توی نسخه 7 خودش از اون فیلتر ها کمتر استفاده بکنه حالا با کد جاوای زیر شما میتونید عکس های pngرو تقریبا مثل بقیه مرورگرها ببینی فقط اگه از فایل ccs به صورتی که به صفحه خودت الحاقش میکنی استفاده میکنید باید تابع alphaBackgrounds() روی بعد از لود شدن صفحه خودت فراخوانی بکنی

if (window.attachEvent) {window.attachEvent("onload", alphaBackgrounds);}function alphaBackgrounds(){var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);for (i=0; i<document.all.length; i++){var bg = document.all[i].currentStyle.backgroundImage;if (itsAllGood && bg){if (bg.match(/\.png/i) != null){ var mypng = bg.substring(5,bg.length-2);document.all[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='"+mypng+"', sizingMethod='crop')";document.all[i].style.backgroundImage = "url('')";}}}}
موفق باشی

Nasim_m
چهارشنبه 23 مرداد 1387, 00:59 صبح
دوست عزیز به ویژوال استدیو شما مربوط نمیشه به مرورگر شما مربوط میشه
توی ie6به پایین عکس های pngبا زمینه آبی میبینید یعنی همون شیشه ای خودمون نیست و باید از فیلتر های میکروسافت استفاده کنیم ولی چون مرورگرهای دیگه مثل فایر فکی یا opera هیچ کدوم از فیلتر های میکروسافت پیروی نکردن میکروسافت تصمیم گرفت توی نسخه 7 خودش از اون فیلتر ها کمتر استفاده بکنه حالا با کد جاوای زیر شما میتونید عکس های pngرو تقریبا مثل بقیه مرورگرها ببینی فقط اگه از فایل ccs به صورتی که به صفحه خودت الحاقش میکنی استفاده میکنید باید تابع alphaBackgrounds() روی بعد از لود شدن صفحه خودت فراخوانی بکنی

if (window.attachEvent) {window.attachEvent("onload", alphaBackgrounds);}function alphaBackgrounds(){var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);for (i=0; i<document.all.length; i++){var bg = document.all[i].currentStyle.backgroundImage;if (itsAllGood && bg){if (bg.match(/\.png/i) != null){ var mypng = bg.substring(5,bg.length-2);document.all[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='"+mypng+"', sizingMethod='crop')";document.all[i].style.backgroundImage = "url('')";}}}}
موفق باشی
اول ازهمه خیلی خیلی ممنونم که بهم جواب دادی
اگه به ویژوال استودیو مربوط نمی شه پس چرا VS2008 حتی توی IE6هم تصاویر رو درست نشون میده
بعد هم می شه لطف کنید توضیح بدید که من این کد رو دقیقا کجا باید بنویسم (متاسفانه من توی جاوا خیلی مشکل دارم)

ehsan2007
چهارشنبه 23 مرداد 1387, 09:01 صبح
فکر کنم ویژوال استدیو 2008 رو طوری طراحی کردن که با استانداردهای جهانی شیوه نامه همخوانی داشته باشه بهمین خاطر به هنگام طراحی شما ضمینه عکسو آبی نمیبینی ولی وقتی اجرا بکنیش و مرورگرت ie6 باشه عکس ضمینش آبی میشه
برای کد هم کاری نمیخواد شما بکنید فقط بین دو تگ اسکریپت بزارش خودش هنگام بار گزاری صفحه فراخوانی میشه