PDA

View Full Version : سوال:چطور میشه حجم عکس ارسالی از طرف کاربر رو کم کرد؟



hassan_h
یک شنبه 30 تیر 1387, 18:26 عصر
چطور میشه حجم عکس ارسالی از طرف کاربر را با کد نویسی به زبان سی شارپ کم کرد؟:اشتباه:

m.hamidreza
یک شنبه 30 تیر 1387, 20:46 عصر
کد زیاده تو گوگل سرچ کنی پیدا میکنی. یه دونه من داشتم یه سری ریزه کاری فقط داره و در کل خوبه ...


private void Resize(string username)

{

string sSavePath="Ur Address";
string sThumbExtension;
int intThumbWidth;
int intThumbHeight;
/////////////////سایزی که میخوای بشه

sThumbExtension = "_thumb";
intThumbWidth = 90;
intThumbHeight = 110;
////////////////////


HttpPostedFile myFile = FileUpload1.PostedFile;

int nFileLen = myFile.ContentLength;



byte[] myData = new byte[nFileLen];
myFile.InputStream.Read(myData, 0, nFileLen);
////////////////
string sFileName = username +System.IO.Path.GetExtension(myFile.FileName);

int File_append = 0;
while (System.IO.File.Exists(Server.MapPath(sSavePath + sFileName)))
{
File_append++;
sFileName = System.IO.Path.GetFileNameWithoutExtension(myFile. FileName) + File_append.ToString();
}

System.IO.FileStream newFile = new System.IO.FileStream(Server.MapPath(sSavePath + "\\"+sFileName), System.IO.FileMode.Create);
newFile.Write(myData, 0, myData.Length);
newFile.Close();
///////////////////////
System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(Thumbn ailCallback);
System.Drawing.Bitmap myBitmap;

myBitmap = new System.Drawing.Bitmap(Server.MapPath(sSavePath + "\\" + sFileName));
/////////////////////////////
File_append = 0;
string sThumbFile = System.IO.Path.GetFileNameWithoutExtension(Server. MapPath(sSavePath + sFileName)) + sThumbExtension + System.IO.Path.GetExtension(MapPath(sSavePath + sFileName));

while (System.IO.File.Exists(Server.MapPath(sSavePath + sThumbFile)))
{
File_append++;
sThumbFile = System.IO.Path.GetFileNameWithoutExtension(myFile. FileName) + File_append.ToString() + sThumbExtension + ".jpg";
}

System.Drawing.Image myThumbnail = myBitmap.GetThumbnailImage(intThumbWidth, intThumbHeight, myCallback, IntPtr.Zero);
myThumbnail.Save(Server.MapPath(sSavePath + "\\" + sThumbFile));
myThumbnail.Dispose();
myBitmap.Dispose();


}

salehbagheri
یک شنبه 30 تیر 1387, 22:10 عصر
اين كار زياد توصيه نمي شه! چون معمولاً روي كيفيت تصوير و يا ... تغيير ايجاد مي كنه و اونا رو خراب ميكنه!

بهترين راه اين هست كه كاربر رو آگاه كني كه عكس كم حجمي ارسال كنه! اينجوري خيلي بهتره!

m.hamidreza
یک شنبه 30 تیر 1387, 22:50 عصر
بهترين راه اين هست كه كاربر رو آگاه كني كه عكس كم حجمي ارسال كنه! اينجوري خيلي بهتره!
این Resize ایهام داره! چون هم حجم رو میشه Resize کرد هم ابعاد رو ! که البته دومی منجر به اولی هم میشه! کاهش کیفیت محسوسی نداره به شرطی که ابعاد رو هم تغییر بدی.
عموم کاربران چگونگی کم حجم کردن عکس رو بلد نیستن، بسته به نیاز چیز خوبیه.