0 امتیاز

برای کراپ یه بخش از یک عکس من کد زیر رو تو نت پیدا کردم.

                    string grCrop = "/image.jpeg" ;
                    int xAnchor = 0, yAnchor = 145, width = 540, height = 250;
                     Bitmap source = new Bitmap(grCrop);
                     Bitmap CroppedImage = source.Clone(new Rectangle(xAnchor, yAnchor, width, height), source.PixelFormat);

حالا سوالم اینکه من در کد مشخص کردم دقیقا طول و غرض جند پیکسل باشه. اگر بخوام بصورت نسبتی باشه چه باید کرد؟ مثلا چنین تصویری رو در نظر بگیرید. من میخوام طول عکس اورجینال هر چی هست کوچیک بشه، بشه 540.

در این حین خوب طول عکس هم کوچیک شده دیگه. حالا از اون طول 250 تاش رو به عنوان طول عکس کراپ شده، بردارم.

 

 

بسته شده

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

پاسخ رو پیدا کردم. بیشتر یه بحث ریاضی هست.

برای بدست اوردن نسیت ابعاد طول رو در عرض تقسیم میکنیم.

از طرفی هم وقتی نسبت ابعاد و طول رو از قبل داریم. با تقسیم این دو به هم ، عرض رو برنامه بدست میاره.

 

        public static Image CropThumbnail(Image grCrop)
        {

           string path = @"c:\image.jpeg";

            // برای گرفتن عکس از نت
            WebClient wc = new WebClient();
            byte[] bytes = wc.DownloadData(source);
            MemoryStream ms = new MemoryStream(bytes);
            Image grCrop = Image.FromStream(ms);
            
           
            float spectRatio = 310f / 165f;    // محاسبه نسبت ابعاد تصویر مورد نظر
            float newWidth = grCrop.Width;
            float newHeight = newWidth / spectRatio; // مقدار ارتفاع را براساس طول به صورت اتوماتیک انتخاب می کند
            int xAnchor = 0, yAnchor = 145;   // نقطه انتخاب کراپ 

            Bitmap newSource = new Bitmap(grCrop);
            Bitmap CroppedImage = newSource.Clone(new Rectangle(xAnchor, yAnchor, (int)newWidth, (int)newHeight), newSource.PixelFormat);

     //       CroppedImage.Save(path);
            return CroppedImage;

 

سلام

برای استفاده سایر کاربران اگه خواستید مطلب رو همینجا منتشر کنید
توسط (7,164 امتیاز) 4 7 141
اضافه شد.

کد برای من کار میکنه. منتهی ممکنه چون مبتدی هستم جاییش اشتباه کدنویسی داشته باشه. لطفا بررسی کنید که باعث گمراهی مابقی کاربران نشه.
توسط (192 امتیاز) 9
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,920 کاربر

دسته بندی ها

...