الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ساعدوني في تصغير الصور عند تحميلها

بدأه explorer12983 في 2 نوفمبر 2008 · 8 رد · 1,021 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عملت معرض صور بـ asp.net ويتم تحميل الصور في ملف

اريد ان اقوم بتصغير حجم الصورة عند رفعها إلى الملف ... أي بأخذ نسخه ثانية مصغرة وحفظها في ملف ثاني

حتى استطيع عرض مصغرات الصور في الصفحة الاولى

شاكر لكم تعاونكم

#2

لا أعتقد أنك بحاجة الى حفظ المصغرات Thumble كل ما عليك هو أن تعرض ملف الصورة في عنصر img وتحدد انت العرض المناسب لهذا العنصر ، وعند النقر عليه تقوم بجلب الصورة بحجمها الطبيعي ...!!

#3

لا يا أخي الحبيب mshall الموضوع لا يمشي بهذه الطريقة ... الأخ صاحب السؤال فعلا محتاج طريقة تكون له thumbs لأنها أفضل في نقطة هامة جداً .. الأداء والسرعة والتحميل ... تخيل لو عندك صورة مساحتها 1 ميجا وأبعادها 800 في 600 بكسل ... تريد عرضها في صفحة ... لو أخذت نفس الصورة وعرضتها ولكن بأبعاد قليلة مثلاً 50 في 80 بكسل ... سيتم تحميل كامل الصورة 1 ميجا ... وتخيل البطء في تحميل الصورة ولا سيما لو صفحة بها أكثر من صورة ...

ميزة thumbs أنها ستوفر صورة من الصورة ولكن أقل في الأبعاد والمساحة وبالتالي أسرع كثيرا في العرض ...

وأنا منتظر مثلكم إفادة احد من الإخوة عن طريقة جيدة لهذا الأمر ..

تقبلوا أسمى تحياتي ...

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#4
		//using System.Drawing;
		//using System.Drawing.Imaging;

		Bitmap OriginalBM = new Bitmap(Server.MapPath(@"~\image.JPG"));

		Size newSize = new Size(100, 100);
		Bitmap ResizedBM = new Bitmap(OriginalBM, newSize);

		ResizedBM.Save(Server.MapPath(@"~\Resized.JPG"), ImageFormat.Jpeg);

لم اجرب الكود

#5

يعطيكم العافية على الردود

انا جربت وبحثت في النت على كوود تصغير الصور لكن يحصرني بمقاس معين مثل (100 * 100 ) وهذي الطريقة شبه مجزيه لأن عرض الصور يكون مرتب

مثال :: مثل عارض الصور في ويندوز XP

انا اريد كود يصغر حجم الصورة اي يقوم بأخد طول وعرض الصورة المراد تصغيرها ويقوم بقسمتهم على 2 اي نقوم تصغير الصورة بحث اذا كانت الصورة 120 * 200 تصبح

60*100 وبهذه الطريقة نقوم بتصغير الصورة بشكل طبيعي

مثال :: عارض الصور في ويندوز vista

والسلام عليكم ورحمة الله وبركاته

#6

ابشركم .. انا عدلت الكود الي اعطاني ahmed

وحولته من #C إلى ASP.Net

وهذا هو الكود

 
		Dim originalBM As Bitmap = New Bitmap(Server.MapPath("~/img/-8589759450713369558.jpg"))
		Dim w As Integer
		w = originalBM.Width
		Dim y As Integer
		y = originalBM.Height
		Me.TextBox1.Text = w
		Dim newSize As Size = New Size(w / 2, y / 2)
		Dim ResizedBM As Bitmap = New Bitmap(originalBM, newSize)
		ResizedBM.Save(Server.MapPath("~/img_small/-8589759450713369558.jpg"), ImageFormat.Jpeg)
#7

بالتوفيق

#8

عادة ما تخسر نوعية الصورة عند التصغير او التكبير.يمكنك اضافة التالي للمحافظة على نوعية عالية:

System.Drawing.Image image = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);

					int thumbWidth = 199; 
					int srcWidth = image.Width;
					int srcHeight = image.Height;



					int thumbHeight = 132;
					Bitmap bmp = new Bitmap(thumbWidth, thumbHeight);

					System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp);

					gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

					gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

					gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

					System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(0, 0, thumbWidth, thumbHeight);
					gr.DrawImage(image, rectDestination, 0, 0, srcWidth, srcHeight, GraphicsUnit.Pixel);
					bmp.Save(Server.MapPath(mypath));
					bmp.Dispose();
					image.Dispose();
#9
madani كتب:
عادة ما تخسر نوعية الصورة عند التصغير او التكبير.يمكنك اضافة التالي للمحافظة على نوعية عالية:

System.Drawing.Image image = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);

					int thumbWidth = 199; 
					int srcWidth = image.Width;
					int srcHeight = image.Height;



					int thumbHeight = 132;
					Bitmap bmp = new Bitmap(thumbWidth, thumbHeight);

					System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp);

					gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

					gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

					gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

					System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(0, 0, thumbWidth, thumbHeight);
					gr.DrawImage(image, rectDestination, 0, 0, srcWidth, srcHeight, GraphicsUnit.Pixel);
					bmp.Save(Server.MapPath(mypath));
					bmp.Dispose();
					image.Dispose();

اخى ماذا تقصد بنوعية الصورة هل تقصد عدم خسارة دقة الصورة resolution ؟

سجل معنا فى النشرة البرمجية الأسبوعية علمني دوت كوم www.almny.com

مواضيع مشابهة