سؤال

أرغب في العثور على ارتفاع/عرض الصورة الموجودة على القرص دون فتحها، إن أمكن (لأسباب تتعلق بالأداء).

يحتوي جزء خصائص Windows للصور على معلومات مثل العرض والارتفاع وعمق البت وما إلى ذلك، مما يقودني إلى الاعتقاد بأنه يقوم بتخزين البيانات التعريفية على الملف في مكان ما.كيف يمكنني الوصول إلى هذه المعلومات؟

هل كانت مفيدة؟

المحلول

هناك بعض الأسئلة Stackoverflow حول كيفية قراءة معلومات Exif من الصور، مثل: كيفية الحصول على بيانات exif من ملف باستخدام C #

نصائح أخرى

استخدم System.Drawing.Image Class.

        Image img = Image.FromFile(fileName);
        ImageFormat format = img.RawFormat;
        Console.WriteLine("Image Type : "+format.ToString());
        Console.WriteLine("Image width : "+img.Width);
        Console.WriteLine("Image height : "+img.Height);
        Console.WriteLine("Image resolution : "+(img.VerticalResolution*img.HorizontalResolution));

        Console.WriteLine("Image Pixel depth : "+Image.GetPixelFormatSize(img.PixelFormat));
        Console.WriteLine("Image Creation Date : "+creation.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Creation Time : "+creation.ToString("hh:mm:ss"));
        Console.WriteLine("Image Modification Date : "+modify.ToString("yyyy-MM-dd"));
        Console.WriteLine("Image Modification Time : "+modify.ToString("hh:mm:ss"));

أسهل طريقة لتحقيق ذلك هي، بافتراض أن الصورة مربعة، هي أخذ حجم الملف بالبايت وأخذ الجذر التربيعي.سيكون هذا هو العرض والطول الخاص بك.

256 bytes = 16px x 16px

:-)

أو يمكنك محاولة قراءة معلومات EXIF ​​الخاصة بالصورة باستخدام هذا مكتبة كودبلكس

لا يخزن Windows (هذه الوصفية) في أي مكان خاص في نظام الملفات؛ نافذة الخصائص تقولها ببساطة من ملف الصورة نفسه.

لا أعتقد أن .NET يقدم أي وظائف لقراءة البيانات الوصفية فقط من صورة دون تحميل الصورة بأكملها. إذا كنت تتعامل مع عدد محدود فقط من تنسيقات الصور المختلفة (مثل JPEG، PNG و GIF)، فلا ينبغي أن يكون من الصعب جدا قراءة الحجم من رأس الصورة بنفسك.

إذا، من ناحية أخرى، عليك التعامل مع العديد من تنسيقات الصور، وربما يمكنك إلقاء نظرة على شفرة المصدر UNIX. file جدوى. وبعد يتمكن من اكتشاف حجم العديد من تنسيقات الصور المختلفة، وسريعة كبيرة إلى التمهيد.

من أجل الحصول على عرض وارتفاع الصورة (أساسا، كما تضعه، البيانات الوصفية) يجب أن افتح الملف، وتحليل نوع من معلومات الرأس والحصول على ما تريد بهذه الطريقة.

لن تضطر إلى قراءة جميع معلومات الألوان / الصورة النقطية، فقط الرأس.

هذه هي نفس الطريقة التي يتمكن Windows من تحميل الرموز من ملفات التطبيق دون تنفيذها بالفعل.

لقراءة الخصائص المعروضة بواسطة مستكشف Windows، يمكنك استخدام أدوات التحكم في Microsoft Shell والأتمتة عنصر. ميزة هذا هو أنك لا تحتاج إلى أي مكتبة طرف ثالث (كائن COM موجود بالفعل) أو رمز إضافي لتحليل رأس الصورة وأنه سيعمل مع مجموعة متنوعة من التنسيقات.

يمكن العثور على نموذج التعليمات البرمجية في إجابة سؤال ذي صلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top