PDA

View Full Version : سوال: تنظيم حداكثر اندازه براي تصويرهاي بزرگ



smakhavan
شنبه 08 اسفند 1388, 16:08 عصر
باسلام

اگر تعدادي عكس داشته باشيم و بخواهيم آنها را نمايش دهيم به صورتي كه حداكثر اندازه آنها مثلا عرض 600 باشد مي‌توانيم width=600px استفاده كنيم اما اينكار باعث مي‌شود كه عكسهاي كوچكتر هم stretch شوند!!

چطور مي‌توانيم كاري كنيم كه عكسهاي بزرگتر كوچك شوند اما عكسهاي كوچكتر از اندازه دلخواه ما كشيده نشوند؟

mehdi.mousavi
شنبه 08 اسفند 1388, 16:38 عصر
باسلام اگر تعدادي عكس داشته باشيم و بخواهيم آنها را نمايش دهيم به صورتي كه حداكثر اندازه آنها مثلا عرض 600 باشد مي‌توانيم width=600px استفاده كنيم اما اينكار باعث مي‌شود كه عكسهاي كوچكتر هم stretch شوند!! چطور مي‌توانيم كاري كنيم كه عكسهاي بزرگتر كوچك شوند اما عكسهاي كوچكتر از اندازه دلخواه ما كشيده نشوند؟

سلام.
در واقع شما باید Aspect Ratio تصویر رو حفظ کنید، یعنی نسبت طول به عرض. به دو طریق می تونید اینکارو انجام بدید:


روش کثیف: توی این روش میتونید ابعاد تصویر رو طوری انتخاب کنید که Aspect Ratio تصویر حفظ بشه، و هنگام تولید HTML، خودتون سمت سرور Width و Height تصویر رو به اندازه محاسبه شده Set کنید، اما کل تصویر رو به سمت client ارسال کنید. بدین ترتیب، برای یک عکس 100x100 ممکنه 1MB اطلاعات به Client ارسال بشه.
روش تمیز: تو این روش، علاوه بر محاسبه Aspect Ratio و حفظ اون و Set کردن ابعاد تصویر سمت Server، میتونید تصویر رو هم Resize کنید. بدین ترتیب، تصویری که ابعاد اون 100x100 هستش، چند کیلوبات بیشتر نخواهد بود و تصویر کوچک شده واقعا به Client ارسال خواهد شد.


روش اول که نیازی به توضیح نداره و مشخصه. برای روش دوم هم می تونید از روشی که در این مقاله ذکر شده (http://www.4guysfromrolla.com/articles/012203-1.aspx) استفاده کنید.

موفق باشید.

smakhavan
شنبه 08 اسفند 1388, 17:58 عصر
سوال من درباره همون روش كثيف هست كه فرمودين!! من نمي‌خوام thumbnail درست كنم ميخواهم خود تصوير را توي صفحه نشون بدهم.

اما از طرفي مي‌خواهم عرض عكس از 600 پيكسل بيشتر نشه تا از قالبم بيرون نزنه و براي اينكار ميتونم بنويسم

<asp:Image ImageUrl="a.jpg" Width="600px" />

اين كار Aspect Ratio را حفظ ميكنه و به هم نميزنه اما مشكلي كه داره به فرض اگه يه تصوير با عرض 300 داشته باشم اون را هم با عرض 600 نشون ميده و بزرگ ميكنه (با حفظ Aspect Ratio)

چكار كنم كه تصاوير كوچك را بزرگ نكنه؟
خلاصه اينكه عرض تصوير حد حداكثر اندازه را داشته باشه.

mehdi.mousavi
شنبه 08 اسفند 1388, 18:16 عصر
سوال من درباره همون روش كثيف هست كه فرمودين!! من نمي‌خوام thumbnail درست كنم ميخواهم خود تصوير را توي صفحه نشون بدهم. اما از طرفي مي‌خواهم عرض عكس از 600 پيكسل بيشتر نشه تا از قالبم بيرون نزنه و براي اينكار ميتونم بنويسم

<asp:Image ImageUrl="a.jpg" Width="600px" />اين كار Aspect Ratio را حفظ ميكنه و به هم نميزنه اما مشكلي كه داره به فرض اگه يه تصوير با عرض 300 داشته باشم اون را هم با عرض 600 نشون ميده و بزرگ ميكنه (با حفظ Aspect Ratio)

چكار كنم كه تصاوير كوچك را بزرگ نكنه؟
خلاصه اينكه عرض تصوير حد حداكثر اندازه را داشته باشه.

سلام.
منکه توضیح دادم خدمتتون. طول و عرض تصویر رو سمت سرور بدست بیارید، هر کدوم از 600 بیشتر بود با یک ضرب و تقسیم ساده به ابعاد مورد نظر تقلیلش بدید و طول و عرض جدید رو (با توجه به Aspect Ratio) برای Image Element مزبور Set کنید. متوجه نمیشم با کجای این روش مشکل دارید. اگر کوچکتر از 600 بود، (مثلا 300 ای که گفتید)، خوب اونوقت Height تصویر رو نگاه میکنید. اگر بزرگتر از 600 بود، باید تصویر ابعاد رو Resize کنید. اگر نه، ابعاد واقعی رو برای Image Element خودتون (سمت سرور) Set کنید.

در واقع جای اینکه این اعداد Width و Height رو بصورت Declarative تعیین کنید، باید اونها رو سمت Server توی کدتون Set کنید. متوجه منظورم شدید؟

موفق باشید.

clover
شنبه 08 اسفند 1388, 18:30 عصر
از خصوصیت maxwidth و maxheight در استایل استفاده کنید. البته این خصوصیت در IE6 پشتیبانی نمی شود.