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

كيف يمكن تحديد عرض وطول الصورة في الحقل تلقائي ؟؟

بدأه @ام عبدالله@ في 5 يناير 2010 · 2 رد · 691 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف حالكم ؟

انا عندي حقل من نوع ايمج يخزن الصور ... كيف اخلي الحقل يحفظ الصور بطول وعرض معين تلقائي؟؟

يعني مجرد ماارفع صورة للحقل .. يعرضها بطول وعرض محدد؟؟؟

هل فيه حل ؟

#2

اخي من خاصيات الحقل حدد عرض و طول معينين

width و height

#3

السلام عليكم

أختي الفاضله أم عبدالله

إذا قصدتي تخزين الصورة بأبعاد غير الأبعاد الأساسية للصورة الأصلية فهذا ممكن

وعشان أكون أكثر وضوح العملية راح تكون Resizing

ممكن قبل أن تقومي بتحويل الصورة الأصلية إلى byte[] ممكن تخزينها أو رسمها على Bitmap ولكن بالحجم المطلوب كما في المثال التالي

public Image ResizeImage(Image originalImage, Size newSize) {
	Bitmap newImage = new Bitmap(newSize.Width, newSize.Height);
	Graphics g = Graphics.FromImage((Image)newImage);
	g.DrawImage(originalImage, 0, 0, newSize.Width, newSize.Height);
	return (Image)b;
}

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

public Image ResizeImage(Image originalImage, Size newSize) {
	float factor = 0f;

	float pWidth = ((float)newSize.Width / (float)originalImage.Width);
	float pHeight = ((float)newSize.Height / (float)originalImage.Height);

	if(pWidth < pHeight) factor = pWidth;
	else factor = pHeight;

	int newWidth = (int)(originalImage.Width * factor);
	int newHeight = (int)(originalImage.Height * factor);


	Bitmap newImage = new Bitmap(newWidth, newHeight);
	Graphics g = Graphics.FromImage((Image)newImage);
	g.DrawImage(originalImage, 0, 0, newWidth, newHeight);
	return (Image)b;
}

أرجوا ان تكون الطريقة واضحة ومفيدة ودمتي في رعاية الله

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…