PDA

View Full Version : سوال: مشکل در استفاده از کد ریسایز تصویر



masoudsalahi
پنج شنبه 02 مهر 1394, 15:16 عصر
با سلام
دوستان من یه کد ریسایز تصویر دارم که به صورت زیر هیچ مشکلی نداره و کار می کنه


protected void Button1_Click(object sender, EventArgs e)
{


string UpPath = Server.MapPath(@"Img_Slider/");
if (!Directory.Exists(UpPath))
{
Directory.CreateDirectory(Server.MapPath(@"Img_Slider/"));
}




string pathImage = Server.MapPath(@"Img_Slider/");
String[] validext = { ".jpg", ".jpeg", ".bmp", ".jpe", ".png", ".gif", ".tiff", ".tif", ".bmp" };
string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile .FileName);
if (Array.IndexOf(validext, ext.ToLower()) < 0)
{
return;
}




string ImageFileName = System.IO.Path.GetFileName(FileUpload1.FileName);


while (System.IO.File.Exists(pathImage + ImageFileName))
{
ImageFileName = "1" + ImageFileName;
}


System.Drawing.Image img = System.Drawing.Image.FromFile(FileUpload1.PostedFi le.FileName);// ImageFileName
Bitmap bmp = new System.Drawing.Bitmap(img, 336, 336);
bmp.Save(pathImage + ImageFileName);
img.Dispose();



// FileUpload1.PostedFile.SaveAs(pathImage + ImageFileName);


}


در واقع من می خوام نام فایل را در بانک اطلاعاتی ثبت کنم اما وقتی کد را به صورت زیر می نویسم اصلا کار نمیکنه بدون اضافه کردم کد ریسایز برنامه کار میکنه و اطلاعات در بانک اطلاعاتی ثبت میشه ولی وقتی کد ریسایز اضافه می کنم عمل نمیکنه نمی دونم دقیقا باید به چه صورت کجا رو تغییر بدم



protected void Button1_Click(object sender, EventArgs e)
{
string UpPath = Server.MapPath("~/photos/");
if (!Directory.Exists(UpPath))
{
Directory.CreateDirectory(Server.MapPath("~/photos/"));
}




string pathImage = Server.MapPath("~/photos/");
String[] validext = { ".jpg", ".jpeg", ".bmp", ".jpe", ".png", ".gif", ".tiff", ".tif", ".bmp" };
string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile .FileName);
if (Array.IndexOf(validext, ext.ToLower()) < 0)
{
return;
}




string ImageFileName = System.IO.Path.GetFileName(FileUpload1.FileName);


while (System.IO.File.Exists(pathImage + ImageFileName))
{
ImageFileName = "1" + ImageFileName;



System.Drawing.Image img = System.Drawing.Image.FromFile(FileUpload1.PostedFi le.FileName);// ImageFileName
Bitmap bmp = new System.Drawing.Bitmap(img, 336, 336);
bmp.Save(pathImage + ImageFileName);
img.Dispose();
Random rnd = new Random();
string ptitle, pdescr, pemail, pdate, pmoney, pusername , userip;
if (txttitle.Text.Trim().Length >= 70) ptitle = txttitle.Text.Trim().Substring(0, 70);
else ptitle = txttitle.Text.Trim();
if (txttozihat.Text.Trim().Length >= 2000) pdescr = txttozihat.Text.Trim().Substring(0, 2000);
else pdescr = txttozihat.Text.Trim();
byte catid = Convert.ToByte(DDLNewsCat.SelectedValue.ToString() );
if (txtemail.Text.Trim().Length >= 120) pemail = txtemail.Text.Trim().Substring(0, 120);
else pemail = txtemail.Text.Trim();
pdate = lbldate.Text;
if (txtmoney.Text.Trim().Length >= 120) pmoney = txtmoney.Text.Trim().Substring(0, 120);
else pmoney = txtmoney.Text.Trim();
pusername = User.Identity.Name;
userip = lblip.Text.Trim();
DataSet1TableAdapters.tblProductTableAdapter adapter = new DataSet1TableAdapters.tblProductTableAdapter();
adapter.Addproduct(ptitle, pdescr, ImageFileName, catid, 0, pusername, pemail, pdate, pmoney, userip);
}
btnsubmit.Enabled = false;

}


نمیفهمم کجا کار مشکل داره لطفا راهنماییم کنید من مبتدیم

mehrzad_ali
جمعه 03 مهر 1394, 09:13 صبح
http://barnamenevis.org/showthread.php?278138-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF-%DA%A9%D8%A7%D9%85%D9%84%D8%AA%D8%B1%DB%8C%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D8%B9%DA%A9%D8%B3-%DA%A9%D9%87-%D8%B4%D8%A7%D9%85%D9%84

mbasirati
جمعه 03 مهر 1394, 14:30 عصر
از ImageResizer استفاده کن
http://imageresizing.net/

masoudsalahi
شنبه 04 مهر 1394, 01:28 صبح
از ImageResizer استفاده کن
http://imageresizing.net/
دوست عزیز من اینو دانلود کردم اما نمیدونم چطور باید استفاده کرد اگه یه توضیحی بدی ممنونت میشم دمت گرم

mbasirati
شنبه 04 مهر 1394, 21:41 عصر
بهتره به جای دانلود کردن با استفاده از کنسول توی پروژت نصبش کنی. اینجوری خودش فایلهای مورد نیازش رو دانلود میکنه و تغییرات لازم رو توی فایل وب کانفیگت اعمال میکنه. آموزش نصبش با استفاده از کنسول اینجا هست:
http://imageresizing.net/docs/v4/install

اگه متوجه نشدی بگو برات توضیح بدم.
وقتیم که نصبش کردی دیگه نیازی نیست که عکست رو با سایزای مختلف بسازی و ذخیره کنی. فقط کافیه عکس اصلی رو ذخیره کنی و هرجا که نیاز داشتی توی سایز دلخواه نمایش بدی. مثلا میخوای عکست با عرض 100 و ارتفاع 200 نمایش داده بشه. کافیه اینجوری بنویسی:

<img src="yourImage.jpg?w=100&h=200" />

به همین سادگی.

upper of min
یک شنبه 05 مهر 1394, 11:20 صبح
دوست عزیز من اینو دانلود کردم اما نمیدونم چطور باید استفاده کرد اگه یه توضیحی بدی ممنونت میشم دمت گرم

سلام دوست عزیز
این رو ببینید می تونن کمکتون کنن
ایمیل هم بهشون بدید

http://s6.picofile.com/d/130b8334-a6c9-4130-bc6f-14394eab1a27/Part9_ASP_net.rar
موفق باشید:لبخندساده:

masoudsalahi
دوشنبه 06 مهر 1394, 13:39 عصر
دوستان ممنون از پاسختون ، ببینید من کد ریسایز تصویر دارم و همینطور کد ارسال مطلب در دیتابیس ، حالا می خوام این دوتا رو کنار هم بزارم و استفاده کنم اما نمی دونم چطور این کد ها رو کنار هم بزارم تا کار کنه و نام تصویری که در سرور ذخیره میکنه را بدست بیارم و در دیتابیس درج کنم ، لطفا کدی که در پست اول گذاشتم با دقت نگاه بندازید ببینید متوجه میشید کجای کار اشکال داره ، ممنون

h.moradof
جمعه 10 مهر 1394, 10:37 صبح
سلام،
متاسفانه بنده در دید اول از کدهای شما سر در نیاوردم، چند پیشنهاد دوستانه برای شما دارم.


کدهایی مثل این که یک ابزار است که در بخش های مختلف پروژه استفاده میشه رو حتما درون یک کلاس قرار بدین تا یک پکیج بشه و بتونین به راحتی از اون توی همه جای پروژه به راحتی استفاده کنین و همچنین بتونین توی پروژه های بعدی هم ازشون استفاده کنین. بدین صورت پس از مدتی کلی ابزار در اختیار خواهید داشت که بخش بزرگی از کارهای تکرای که توی همه پروژه ها نیاز دارین رو انجام میده. بعنوان مثال تولید اسم فایل تصادفی غیر تکراری، ایجاد تصویر کپچا، ریسایزر تصاویر و رمزگذاری (هش) داده ها نمونه هایی از این نوع ابزارها می باشند.
حتما کامنت نویسی داشته باشید، حتی اگر یک خط توضیح ساده فارسی باشه.

البته می دونم که قصد شما یک سمپل کد ساده بوده ولی بنده نتونستن ازش سر در بیارم، مسلما با صرف وقت زیاد میشه به فرآیند پی برد ولی کد خوب کدی است که در دید اول سریع بشه فهمیدش. البته سوء تفاهم نشه، بنده خاک پای شمام. صرفا توصیه برادرانه خدمتتون عرض کردم.



کدهایی که من برای این کار استفاده می کنم در وبلاگم موجود است و توضیحات کامل و ساده هم ارائه شده است که در ادامه لینک ها رو میزام.
در مقاله اول کار با GDI+ و تغییر سایز تصاویر رو بیان نموده ام و در مقاله دوم پا را فراتر گذاشته و کاهش حجم تصاویر بدون افت کیفیت رو هم به ریسایزر اضافه نموده ام.



آموزش تغییر اندازه (سایز) تصاویر در asp.net (http://netnic.ir/post/916)
آموزش تغییر اندازه (ریسایز) تصاویر در asp.net _ بخش دوم
(http://netnic.ir/post/916)




با توجه به کامل و شفاف بودن توضیحات موجود در لینک های بالا فکر کنم نیاز به توضیح بیشتری نباشه.

h.moradof
جمعه 10 مهر 1394, 11:09 صبح
دوستان ممنون از پاسختون ، ببینید من کد ریسایز تصویر دارم و همینطور کد ارسال مطلب در دیتابیس ، حالا می خوام این دوتا رو کنار هم بزارم و استفاده کنم اما نمی دونم چطور این کد ها رو کنار هم بزارم تا کار کنه و نام تصویری که در سرور ذخیره میکنه را بدست بیارم و در دیتابیس درج کنم ، لطفا کدی که در پست اول گذاشتم با دقت نگاه بندازید ببینید متوجه میشید کجای کار اشکال داره ، ممنون

پیشنهاد می کنم جهت بالا رفتن سرعت کداتون، به جای استفاده از کد




string ImageFileName = System.IO.Path.GetFileName(FileUpload1.FileName);


while (System.IO.File.Exists(pathImage + ImageFileName))
{
ImageFileName = "1" + ImageFileName;
}


از کد زیر استفاده کنید


string ImageFileName = String.Format("{0}{1}", Guid.NetGuid(), System.IO.Path.GetExtension(FileUpload1.FileName)) ;

masoudsalahi
یک شنبه 12 مهر 1394, 19:21 عصر
پیشنهاد می کنم جهت بالا رفتن سرعت کداتون، به جای استفاده از کد




string ImageFileName = System.IO.Path.GetFileName(FileUpload1.FileName);


while (System.IO.File.Exists(pathImage + ImageFileName))
{
ImageFileName = "1" + ImageFileName;
}


از کد زیر استفاده کنید


string ImageFileName = String.Format("{0}{1}", Guid.NetGuid(), System.IO.Path.GetExtension(FileUpload1.FileName)) ;

ممنون حمید جان که پاسخ دادی خیلی آقایی, این کد از اینترنت پیدا کردم چند ماهه نت زیرورو کردم فارسی و خارجی ,کد سایت شما هم دیدم بازم همین مشکل دارم نمی تونم کد ریسایز تصویر و کد دریافت چندتا فیلد باهم استفاده کنم , حتی یک پروژه نمونه هم پیدا نکردم

masoudsalahi
یک شنبه 19 مهر 1394, 12:09 عصر
آقا نبود کسی مشکل مارو حل کنه