PDA

View Full Version : سوال: كوچك كردن سايز عكس هنگام نمايش



mahsa.n
دوشنبه 18 مرداد 1389, 15:27 عصر
من آدرس تصاويرم رو در بانك و خودشون رو در يك فولدر ذخيره كردم
وقتي اون ها در gridview نمايش ميدم عكس رو با سايز واقعيش نمايش ميده
چه جوري ميشه فقط در هنگام نمايش سايز عكس كوچيك بشه و در بانك هيچ تغييري نكنه؟؟

maxpayn2
دوشنبه 18 مرداد 1389, 15:33 عصر
از کلاس BitmapManipulator که ضمیمه میکنم استفاده کن ، یه کلاس متد داره به نام ThumbnailBitmap

mahsa.n
دوشنبه 18 مرداد 1389, 16:01 عصر
چقدر زياد بود:افسرده:
حالا چه جوري ازش استفاده كنم؟كجا فراخوانيش كنم؟

mahsa.n
سه شنبه 19 مرداد 1389, 08:18 صبح
دوستان كسي نيست به من كمك كنه؟

ricky22
سه شنبه 19 مرداد 1389, 08:27 صبح
سلام از عکستون یک Thumbnail موقتی بسازید.
http://www.csharp-station.com/Articles/Thumbnails.aspx

maxpayn2
سه شنبه 19 مرداد 1389, 08:28 صبح
این یک httphandler هستش که اگه به فایلی با پسوند thumb بر بخوره اون رو با استفاده از کلاس بالا به اندازه تعیین شده تغییر سایز میده




using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Drawing;

namespace MyIIS7_Demos
{
public class ThumbHandler : IHttpHandler
{
#region IHttpHandler Members

public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
string full_filename = Path.GetFileName(context.Request.Path);
string filename_without_ext = Path.GetFileNameWithoutExtension(context.Request.P ath);

DirectoryInfo di = new DirectoryInfo(context.Server.MapPath("~/Images"));
FileInfo[] fi = di.GetFiles(filename_without_ext + ".*");
if(fi.Length > 0)
{
string physical_filename = fi[0].FullName;
if(File.Exists(physical_filename + ".thumb"))
{
Image img = Bitmap.FromFile(physical_filename + ".thumb");
Bitmap bmp = new Bitmap(img);
bmp.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
else
{
Image img = Bitmap.FromFile(physical_filename);
Bitmap bmp = new Bitmap(img);
bmp = BitmapManipulator.ThumbnailBitmap(bmp, 100, 100);
bmp.Save(physical_filename + ".thumb", System.Drawing.Imaging.ImageFormat.Jpeg);
bmp.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}

#endregion
}
}

mahsa.n
سه شنبه 19 مرداد 1389, 09:22 صبح
كاشكي دوستان توجه داشتن كه من كاربر تازه وارد هستم
من اصلا از اين كدا سر در نميارم
نميدونم اصلا كجا استفاده كنم

mohsen.nsb44
سه شنبه 19 مرداد 1389, 09:29 صبح
كاشكي دوستان توجه داشتن كه من كاربر تازه وارد هستم
من اصلا از اين كدا سر در نميارم
نميدونم اصلا كجا استفاده كنم
خب من یه راه ساده برات می گم برای نمایش عکس در سایزی که خودت دوست داری این کارو بکن
در گریدویو قسمت تمپلیت یک image بزار و اونو به اندازه ای که دوست داری ارتفاع و عرض اونو تنظیم کن در نتیجه عکس هم در همون اندازه دیده خواهد شد اینم در نظر بگیر اگه سایز کنترل image اگه سایز اونو تغییر ندی عکس در اندازه واقعی دیده خواهد شد اما اگه سایزشو تغییر بدی در همون اندازه ای دیده خواهد شد که شما تنظیم کردین.
فقط اینم بگم که در این روش عکس شما اندازش تغییر نمی کنه فقط در اون اندازه ای که دوست دارین نمایش داده میشه.
موفق باشین .

maxpayn2
سه شنبه 19 مرداد 1389, 10:30 صبح
خب من یه راه ساده برات می گم برای نمایش عکس در سایزی که خودت دوست داری این کارو بکن
در گریدویو قسمت تمپلیت یک image بزار و اونو به اندازه ای که دوست داری ارتفاع و عرض اونو تنظیم کن در نتیجه عکس هم در همون اندازه دیده خواهد شد اینم در نظر بگیر اگه سایز کنترل image اگه سایز اونو تغییر ندی عکس در اندازه واقعی دیده خواهد شد اما اگه سایزشو تغییر بدی در همون اندازه ای دیده خواهد شد که شما تنظیم کردین.
فقط اینم بگم که در این روش عکس شما اندازش تغییر نمی کنه فقط در اون اندازه ای که دوست دارین نمایش داده میشه.
موفق باشین .

اگه این کار رو بکنیم همه عکس ها در یک سایز ثابت نشون داده میشن و Portrait و Landscape بودن فرقی نداره ، در نتیجه عکس خراب میشه

hosseinrahmatei
سه شنبه 19 مرداد 1389, 11:28 صبح
اگه این کار رو بکنیم همه عکس ها در یک سایز ثابت نشون داده میشن و Portrait و Landscape بودن فرقی نداره ، در نتیجه عکس خراب میشه

دوستان این روشی که دارید میگید حجم عکسم کاهش میده!!!

chaalesh
سه شنبه 19 مرداد 1389, 18:22 عصر
دوستان این روشی که دارید میگید حجم عکسم کاهش میده!!!
نه.
این روش دوستمان حجم را کاهش نمی دهد
بهترین راه اینه که با استفاده از کد نویسی بیایی یه تصویر با حداکثر عرض و ارتفاع مورد قبولت ( البته بصورت درصدی و با در نظر گرفتن طول و عرض واقعی ) کوجک کنی و در اینجور مواقع از تصویر کوچکتر استفاده کنی
این روش هم حجم را کاهش میده و هم موجب لود شدن سریعتر صفحه هم می شه

aminghaderi
سه شنبه 19 مرداد 1389, 22:24 عصر
من آدرس تصاويرم رو در بانك و خودشون رو در يك فولدر ذخيره كردم
وقتي اون ها در gridview نمايش ميدم عكس رو با سايز واقعيش نمايش ميده
چه جوري ميشه فقط در هنگام نمايش سايز عكس كوچيك بشه و در بانك هيچ تغييري نكنه؟؟
چکاریه؟!
خوب یه پوشه کنار همون پوشه بسازید و هنگام آپلود یه نمونه کوچک شده عکس مثلا : 100×100 رو داخلش ذخیره کنید.
چرا پردازش اضافه به سیستم تحمیل می کنید ، می دونی شما اگه 1000 تا یوزر آنلاین داشته باشی امکان اینکه سرور سایت شما رو بلاک کنه هست؟!!
این رو باید مادام توجه داشته باشی که هزینه پردازش خیلی بیشتر از هزینه نگهداری داده هست.
شما سشن رو شلوغ نمی کنی که رم زیادی مصرف نشه ، اما به حجم پردازش اهمیت نمی دید؟!

موفق باشید.