PDA

View Full Version : خواندن اطلاعات یک فایل png



1485159
جمعه 27 فروردین 1389, 22:17 عصر
سلام
من نیاز دارم که اطلاعات یک فایل png رو بدست بیارم! مثلا فلان پیکسل چه رنگه؟ شفافیت فلان پیکسل و.... در ضمن اگه ممکنه به جای معرفی کامپوننت کد بزارید!
ممنون.

arsisman2006
شنبه 28 فروردین 1389, 09:42 صبح
سلام دوست عزيز
منم نياز داشتم ، ولي مشكلم با كامپوننت imageen به راحتي حل كردم. امكانات فوق العاده اي داره. پيشنهاد ميكنم ، يه نگاهي داشته باشي.

1485159
شنبه 28 فروردین 1389, 10:55 صبح
یعنی هیچ راهه دیگه ای نیست؟
لینک دانلودشو میشه برام بفرستین؟
ممنون.

SAASTN
یک شنبه 29 فروردین 1389, 00:33 صبح
اکثر کامپوننت هایی که png رو ساپورت می کنن یه unit به اسم pngimage دارن که دسترسی به اطلاعات فایل توی اون انجام می شه. اگه به این unit دسترسی داری کلمه Chunk رو توش سرچ کن یه چیزایی دستگیرت میشه.
برای آشنایی با ساختار png هم یه سری به اینجا ها بزن:
http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html
http://www.libpng.org/pub/png/spec/1.2/PNG-Structure.html

lord_viper
یک شنبه 29 فروردین 1389, 08:54 صبح
در دلفی2009 به بعد کلاس مجزا برای کار با png و gif به دلفی اضافه شده که به راحتی میتونین با این فایلها کار کنین

که در کتابی که در ادرس زیر معرفی شده توضیح داده

http://www.iranled.com/forum/showthr...930&pid=121139

behzadboloori
یک شنبه 13 تیر 1389, 18:06 عصر
میشه بگین چه کلاسهایی اضافه شده؟

moein+
چهارشنبه 16 تیر 1389, 00:14 صبح
با سلام، ضمن ابراز خوشحالی از رویکرد شما به فرمت متعالی!
نمی دونی چقدر برام جالبه که بدونم با Png چیکار می کنی!
ولی جواب :
خب تا قبل از دلفی 2009 یک پکیج تحت عنوان DelphiPNG وجود داشت و البته دارد که متداول ترین مجموعه برای کار با Png می باشد به طوریکه بزرگترین کامپوننت سازها هم به نحوی از کلاسهای اون داخل پکیج خودشون استفاده می کنند و بعد از اونم که همین کلاسها و یونیت ها به دلفی اضافه شد.
این مجموعه مهمترین کاری که برای شخص شما می تونه انجام بده اینه که کلاسی به نام TPngObject رو که نوعی مشتق شده از TGraphic هست در اختیار قرار میده وبه دلفی هم معرفی می کنه اما برای هدف شما:
این TPngObject شبیه همان TBitmap خودمان هست و شما برای بدست آوردن رنگ یک پیکسل از ScanLine میتونی استفاده کنی! والبته اگر چشمی به کانال آلفا داری! AlphaScanLine هم اضافه شده! (و البته از مزایای آن اینست که canvas ندارد :لبخند:)
حالا اگر از ScanLine خوشت نمی یاد - نمی خوای حرفه ای عمل کنی - از اون جایی که این TPngObject یک گرافیک هست می تونی اونو به یک بیت مپ Assign کنی، توی خصوصیت Picture یک Image، بارگذاری نمایی و یا هر کاری که خودت بهتر می دونی ... (مثلا روی یک Canvas بکشی ) و بعد با دستیابی کند و آرایه گون Canvas، پیکسل مورد نظرت رو بخونی!