فشرده سازي عكس در سي شارپ
سلام خسته نباشيد
يه برنامه دارم كه عكس پروفايل شخص رو توي برنامه ويندوز فرم توي بانك ذخيره ميكنه
مي خوام عكس شخص رو فشرده كنم چون عكسش با وب كم گرفته ميشه شايد تا 3 مگ بره
ميخوام تا كيلو بايت برسه البته نسبت width , height يكسان كم بشه مثل برنامه paint قسمت ريسايز
Horizontal مثلا ميزني 800 خودش Vertical متناسب رو ميزنه
چون بعضي عكسا طولي هستن بعضي عرضي
ممنون ميشم راهنمايي كنيد
11 پاسخ
عکسی که مشخص کردید به تناسب مشخص شده Width اش اضافه میشه و Height هم همینطور، یک تناسب هست، وقتی عکسی Width اش کمتر از 800 هست و شما براش 800 مشخص می کنید معلومه که Height عکس به تناسب زیاد میشه.
در كل ممنون بابت راهنماييتون
ولي فكر نكنم تناسب باشه width همونجور 700 بمونه ولي height دوبرابر بشه
خوب من طبق اون قطعه كد width= 800 ميگيرم
بعد عكسي با سايز 700= width و height=1500
شما بزاريد تو همون كد ببينيد چي در مياد
البته کدهایی هم هستن که برای فشرده سازی عکس استفاده میشن و سایز عکس رو بدون تغییر اندازه کم می کنن
اگه داشتين اون كد هارو هم بزاريد ممنون
دقیقاً همینطوره، وقتی طول عکس تغییر نکنه، ارتفاع هم تغییری نمیکنه، باید ارتفاع رو کم کنید که این موضوع Width رو هم کم میکنه، یعنی انگار شما width رو کم کردید و ارتفاع به صورت خودکار کم شده و تفاوتی بینشون نیست. مگر اینکه تابعی بنویسید که طول و ارتفاع رو بگیره و تناسبی بین تغییر اندازه ها نباشه.
دوست عزيز من اگه targetWidth رو 800 بگيرم
و original.Width عكس 700 باشه
و original.Height عكس 1500 باشه
انگار يخورده بهم ميريزه
به نظرت اينكارو نكنيم كه هر كدام بزگتر از 800 بود اونو تقسيم بر targetWidth كنيم براي بدست امدن عدد پايه؟؟!!
سلام، وقت بخیر. قطعه کد این لینک رو استفاده کنید. کار مورد نظرتون رو انجام میده.
شما بستگی به شرایط خودتون و اینکه عکس مورد نظرتون رو به چه سایزی میخوایید تغییر بدید باید ازش استفاده کنید. شما Target Width رو که مشخص می کنید Height بر اساس اون مشخص میشه، در حقیقت Target Width طول مورد نظر عکس بعد از تغییر اندازه هست.
شما میخوایید width ثابت بمونه؟ یعنی فقط height تغییر کنه؟
نه به تناسب هردو كم بشن
من در كل ميخوام حجمش هم كم بشه
اگه عكسي با عرض 800 باشه و ارتفاع 1500 اگه من عرض پايه رو 800 بگيرم عكسي خروجي هيچ تغييري نميكنه
فكر كنم بايد برا اين موارد بيام رو ارتفاع دستكاري كنم كه هردو كم بشن