عملت معرض صور بـ asp.net ويتم تحميل الصور في ملف
اريد ان اقوم بتصغير حجم الصورة عند رفعها إلى الملف ... أي بأخذ نسخه ثانية مصغرة وحفظها في ملف ثاني
حتى استطيع عرض مصغرات الصور في الصفحة الاولى
شاكر لكم تعاونكم
عملت معرض صور بـ asp.net ويتم تحميل الصور في ملف
اريد ان اقوم بتصغير حجم الصورة عند رفعها إلى الملف ... أي بأخذ نسخه ثانية مصغرة وحفظها في ملف ثاني
حتى استطيع عرض مصغرات الصور في الصفحة الاولى
شاكر لكم تعاونكم
لا أعتقد أنك بحاجة الى حفظ المصغرات Thumble كل ما عليك هو أن تعرض ملف الصورة في عنصر img وتحدد انت العرض المناسب لهذا العنصر ، وعند النقر عليه تقوم بجلب الصورة بحجمها الطبيعي ...!!
لا يا أخي الحبيب mshall الموضوع لا يمشي بهذه الطريقة ... الأخ صاحب السؤال فعلا محتاج طريقة تكون له thumbs لأنها أفضل في نقطة هامة جداً .. الأداء والسرعة والتحميل ... تخيل لو عندك صورة مساحتها 1 ميجا وأبعادها 800 في 600 بكسل ... تريد عرضها في صفحة ... لو أخذت نفس الصورة وعرضتها ولكن بأبعاد قليلة مثلاً 50 في 80 بكسل ... سيتم تحميل كامل الصورة 1 ميجا ... وتخيل البطء في تحميل الصورة ولا سيما لو صفحة بها أكثر من صورة ...
ميزة thumbs أنها ستوفر صورة من الصورة ولكن أقل في الأبعاد والمساحة وبالتالي أسرع كثيرا في العرض ...
وأنا منتظر مثلكم إفادة احد من الإخوة عن طريقة جيدة لهذا الأمر ..
تقبلوا أسمى تحياتي ...
ASP.NET Team Leader
moh_kin_mah@hotmail.com
--------------------------------
لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة
//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);
لم اجرب الكود
يعطيكم العافية على الردود
انا جربت وبحثت في النت على كوود تصغير الصور لكن يحصرني بمقاس معين مثل (100 * 100 ) وهذي الطريقة شبه مجزيه لأن عرض الصور يكون مرتب
مثال :: مثل عارض الصور في ويندوز XP
انا اريد كود يصغر حجم الصورة اي يقوم بأخد طول وعرض الصورة المراد تصغيرها ويقوم بقسمتهم على 2 اي نقوم تصغير الصورة بحث اذا كانت الصورة 120 * 200 تصبح
60*100 وبهذه الطريقة نقوم بتصغير الصورة بشكل طبيعي
مثال :: عارض الصور في ويندوز vista
والسلام عليكم ورحمة الله وبركاته
ابشركم .. انا عدلت الكود الي اعطاني 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)عادة ما تخسر نوعية الصورة عند التصغير او التكبير.يمكنك اضافة التالي للمحافظة على نوعية عالية:
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();
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