PDA

View Full Version : سوال: بدست آوردن عرض و ارتفاع یک تصویر



rezamahdizadeh
پنج شنبه 06 آبان 1389, 08:59 صبح
یک فیلد از نوع Image وجود دارد که محتوای آن را داخل Stream می ریزم لازم است که اندازه عرض و ارتفاع آن را که از انواع تصاویر مثل jpg و bmp و png است بدست بیاورم بهترین راه حل چیست؟

Felony
پنج شنبه 06 آبان 1389, 09:26 صبح
بهترین راه این هست که سوالتون رو در بخش مناسب بپرسید تا زودتر جواب بگیرید و نظم انجمن ها حفظ بشه ، فیلد چه ربطی به کامپوننت داره ؟!

میتویند اون Stream رو تو یک TImage بارگزاری کنید و توسط متدهای TImage اندازه تصویر رو به دست بیاری :


Image.Picture.Width;
Image.Picture.Height;

Mahmood_M
پنج شنبه 06 آبان 1389, 14:31 عصر
کنترل TImage قالبا برای کار با فایلهای BMP و یا فقط نمایش فایلهای تصویری دیگه ( غیر از BMP ) مناسب هست ، اصلا بعید نیست که برای فایلهای تصویری غیر از BMP و یا حتی فایلهای BMP اندازه ای اشتباه نمایش بده ، چون این ابزار وابسته به خصوصیاتش هست ، مثل Stretch یا Center یا ... ، اندازه هایی که به عنوان With و Height از این ابزار بدست میاد بیشتر وابسته به Canvas اون هست تا خود فایل و به نوع رسم فایل تصویری بر روی اون ربط داره ...
راه بهتر برای دریافت اندازه ( طول و عرض ) یک تصویر ، اینه که فایل اون رو از فیلد مورد نظرتون بخونید و در یک پوشه ای به عنوان Temp ذخیره کنید و بعد با استفاده از دستوراتی که در اینجا (http://www.swissdelphicenter.ch/torry/showcode.php?id=1698) قرار داده شده ، اندازه ها رو بدست بیارید و بعد فایل رو حذف کنید ، البته در اون لینکی که قرار دادم ، برای سه نوع JPG و PNG و GIF راه حلی ارایه شده ، برای فایلهای BMP می تونید از همون TImage استفاده کنید ، ولی این نکته رو در نظر بگیرید که باید یک فیلد در کنار فیلد تصویرتون داشته باشید که مثلا پسوند فایل تصویری درش ثبت شده باشه تا بتونید تشخیص بدید که این فایل تصویر ثبت شده از چه نوعی هست و متناسب با اون دستور مورد نظر رو استفاده کنید ...

موفق باشید ...