PDA

View Full Version : سوال: کانورت عکس به فایل تارگا Convert Image To TGA



BILLY_Mgs
دوشنبه 26 بهمن 1388, 05:25 صبح
سلام
چطوری میشه عکسی با فرمت های PNG-JPG-GIF-BMP رو بع فرمت TGA کانورت Convert کرد ؟
من هرچی گشتم تو C# چیزی پیدا نکردم :اشتباه:
لطفا کمک کنید .
اگر راهی نداره یه برنامه معرفی کنید که بشه با ارگ بهش دستور داد تا 1 عکس رو با اون فمت ها که گفتم کانورت کنه
ممنون.
:خجالت:

SMRAH1
دوشنبه 26 بهمن 1388, 21:47 عصر
سلام
از FreeImage (http://freeimage.sourceforge.net/download.html)استفاده کن.
موفق باشی

BILLY_Mgs
چهارشنبه 28 بهمن 1388, 01:35 صبح
سلام
از FreeImage (http://freeimage.sourceforge.net/download.html)استفاده کن.
موفق باشی

دوست عزیز ممنونم از پستتون ، این سایته که دادید برای کاربران ایرانی نمیزاره دانلود کنند.
اگه شما داریدش میشه برام آپلود کنید؟ من فقط C#‎ dll اشو میخوام . ممنون.:خجالت:

SMRAH1
چهارشنبه 28 بهمن 1388, 12:53 عصر
سلام
می تونی از اینجا (http://smah1.persiangig.com/other/FreeImageLib%203.13.1.zip)نسخه 3.13.1 رو دانلود کنی.(حجم 4.54M)
موفق باشی

BILLY_Mgs
چهارشنبه 28 بهمن 1388, 21:25 عصر
سلام
می تونی از اینجا (http://smah1.persiangig.com/other/FreeImageLib%203.13.1.zip)نسخه 3.13.1 رو دانلود کنی.(حجم 4.54M)
موفق باشی

سلام
مرسی.
هنگام کانورت کردن ارور میده فکر کنم کد من اشتباه ه میشه 1 مثال بزنید ؟
کد من :
FIBITMAP dib = FreeImageAPI.FreeImage.Load(FREE_IMAGE_FORMAT.FIF_ JPEG, "C:\\1.jpg", FREE_IMAGE_LOAD_FLAGS.DEFAULT);
FreeImageAPI.FreeImage.Save(FreeImageAPI.FREE_IMAG E_FORMAT.FIF_TARGA,dib,"C:\\1.tga",FREE_IMAGE_SAVE_FLAGS.DEFAULT);
ارور :
Unable to find an entry point named 'FreeImage_LoadU' in DLL 'FreeImage'.

SMRAH1
پنج شنبه 29 بهمن 1388, 11:57 صبح
سلام
احتمالا این (http://www.codeproject.com/KB/graphics/freeimagecswrapper.aspx)رو دیدی.با این حال این توصیه ها رو رعایت کن:
1) FreeImage رو در حالت Release کامپایل کن (این کامپایل ممکنه 30 ثانیه تا 1 دقیقا بسته به سرعت کامیپوترت طول بکشه).
2) در پوشه Release فایل FreeImage.dll را در نظر داشته باشه (بعدا میگم کجا بدرد میخوره).حجم این فایل حدود 2.4 مگ هست (برای همین نمیتونم Upload کنم)
3) فایلی که در لینک بالا گذاشتم دانلود کن (در نمونه پیوست هم هست).و به پروژه سی شارپ اضافه کن.
4) در لینک بالا طریقه استفاده یاد آوری شده با این حال برای load و save یاد آوری می شود:
الف) پارامتر اول فرمت فایل
ب) پارامتر دوم آدرس فایل
ج) پارامتر سوم رو فعلا صفر بذار (شما در مثالتون به این پارامتر مقدار دادین).
5) در کنار فایل اجرای برنامه سی شارپ،فایل FreeImage.dll که بالا گفته شد رو کپی کن.
موفق باشید

BILLY_Mgs
پنج شنبه 29 بهمن 1388, 21:44 عصر
سلام
احتمالا این (http://www.codeproject.com/KB/graphics/freeimagecswrapper.aspx)رو دیدی.با این حال این توصیه ها رو رعایت کن:
1) FreeImage رو در حالت Release کامپایل کن (این کامپایل ممکنه 30 ثانیه تا 1 دقیقا بسته به سرعت کامیپوترت طول بکشه).
2) در پوشه Release فایل FreeImage.dll را در نظر داشته باشه (بعدا میگم کجا بدرد میخوره).حجم این فایل حدود 2.4 مگ هست (برای همین نمیتونم Upload کنم)
3) فایلی که در لینک بالا گذاشتم دانلود کن (در نمونه پیوست هم هست).و به پروژه سی شارپ اضافه کن.
4) در لینک بالا طریقه استفاده یاد آوری شده با این حال برای load و save یاد آوری می شود:
الف) پارامتر اول فرمت فایل
ب) پارامتر دوم آدرس فایل
ج) پارامتر سوم رو فعلا صفر بذار (شما در مثالتون به این پارامتر مقدار دادین).
5) در کنار فایل اجرای برنامه سی شارپ،فایل FreeImage.dll که بالا گفته شد رو کپی کن.
موفق باشید

بازم نشد و چند تا مشکل دیگه داشت .
1 : dll که تو پوشه ی C++‎ بود به خوبی کامپایل شد و حجمش 2.4 مگ بود
اومدم استفاده کنم نشد و نزاشت ازش استفاده کنم .
روفتم تو اون پوشه ها دنباله C#‎ و فایل های cs پیدا کردم ، وقتی خواستم کامپیال کنم حدود 400 تا ارور داد :عصبانی++:
و 1 فایل FreeImage.dll با حجم 400 کیلو بایت گزاشت و تونست تو پراژکت اضافه اش کنم.
بعد طبق اون توضیحات و توضیحات شما کد هارو نوشتم ولی بازم ارور!


int handle = FreeImage.FreeImage_Load(FIF.FIF_JPEG,"C:\\1.jpg",0);
FreeImage.FreeImage_Save(FIF.FIF_TARGA, handle, "C:\\1.tga", 0);
FreeImage.FreeImage_Unload(handle);

ارور: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

SMRAH1
جمعه 30 بهمن 1388, 10:28 صبح
سلام
منظورتون رو از «اومدم استفاده کنم نشد و نزاشت ازش استفاده کنم .» نفهمیدم.اگر فایل FreeImage.dll رو بدست آوردی،یعنی چی که نمیشه ازش استفاده کرد ؟(نمیشه کپی کنید یا ..)یاد تون باشه که FreeImage.dll باید حتما کنار فایل اجرای پروژه C# باشه (تاکید میکنم که خوده VSکپی نمیکنه باید قبل از اجرا،دستی کپی کنید!)
اون پروژه ای که گذاشتم رو باز کنید و کامپایل کنید ،ببنیدی باز هم Error میده.اگر خطا نداره،آدرس فایلها عکس رو تنظیم کنید و ....
درضمن مطمئن هستید که عکس مورد نظر (1.jpg ) در مسیر مورد نظر هست.
اگر همه چیز درسته،نمونه پروژه cs خودتون رو بذارید تا من تست کنم.
موفق باشید

BILLY_Mgs
جمعه 30 بهمن 1388, 14:50 عصر
سلام
منظورتون رو از «اومدم استفاده کنم نشد و نزاشت ازش استفاده کنم .» نفهمیدم.اگر فایل FreeImage.dll رو بدست آوردی،یعنی چی که نمیشه ازش استفاده کرد ؟(نمیشه کپی کنید یا ..)یاد تون باشه که FreeImage.dll باید حتما کنار فایل اجرای پروژه C#‎ باشه (تاکید میکنم که خوده VSکپی نمیکنه باید قبل از اجرا،دستی کپی کنید!)
اون پروژه ای که گذاشتم رو باز کنید و کامپایل کنید ،ببنیدی باز هم Error میده.اگر خطا نداره،آدرس فایلها عکس رو تنظیم کنید و ....
درضمن مطمئن هستید که عکس مورد نظر (1.jpg ) در مسیر مورد نظر هست.
اگر همه چیز درسته،نمونه پروژه cs خودتون رو بذارید تا من تست کنم.
موفق باشید


اجازه نمیداد چون میگفت دات نت نیست.
مسیر ه فایل ه 1.jpg هم درسته مشکل من کامپایل کردن ه فایل FreeImage.dll هست که موقع کامپایل کردن 400 تا خطا میده و فایل کامپایل شده حجمش با اونی که شما گفتی فرق داره.
اگه میشد برام فایل freeImage.dll رئ آپلود کنی خیلی خوب مشد :ناراحت::قلب:

پروزه Cs من حجمش 30 مگ هست اگه مشکلی نداره آپلود میکنم.

SMRAH1
شنبه 01 اسفند 1388, 00:13 صبح
سلام
1) FreeImage با Visual C نوشته دشه است و نیاز به دات نت نداره! اگر Visual Studio رو کامل نصب کرده باشی،حتما VC هم نصب شده!
2) FreeImage.dll (http://smah1.persiangig.com/other/FreeImage.dll)
3) اگر این سه تا توصیه رو انجام بدی،حجم 30 مگی به حدود 1 تا 2 مگا ،احتمالا، کاهش خواهد یافت :
الف) پوشه bin رو در پوشه اصلی پروژه کاملا حذف کن.
ب) پوشه obj رو در پوشه اصلی پروژه کاملا حذف کن.
ج) فایل ها رو به صورت rar به حالت Best فشرده کن.
موفق باشی

BILLY_Mgs
شنبه 01 اسفند 1388, 02:36 صبح
سلام
1) FreeImage با Visual C نوشته دشه است و نیاز به دات نت نداره! اگر Visual Studio رو کامل نصب کرده باشی،حتما VC هم نصب شده!
2) FreeImage.dll (http://smah1.persiangig.com/other/FreeImage.dll)
3) اگر این سه تا توصیه رو انجام بدی،حجم 30 مگی به حدود 1 تا 2 مگا ،احتمالا، کاهش خواهد یافت :
الف) پوشه bin رو در پوشه اصلی پروژه کاملا حذف کن.
ب) پوشه obj رو در پوشه اصلی پروژه کاملا حذف کن.
ج) فایل ها رو به صورت rar به حالت Best فشرده کن.
موفق باشی

دوست عزیز ممنون این بار دیگه ارور نداد ولی هیچ اتفاقی هم نیوفتاد!
من Dll رو کپی کردم و همون کد ها که قبلا کفتم هم گذاشتم و رویه 1 باتن دستور کانورت کردن رو گزاشتم.
بعد از اینکه دکمه رو زدم 1 فایل به اسم 1.tga که گفته بودم ساخت ولی 0 بایت :عصبانی+:

هیچ اروری هم نداد.
ضمنا حجم پروژه واسه ری سورس هاش زیاد شده اگه ریسورس هاشو هم پاک کنم 100% ارور میده . چی کار کنم ؟:عصبانی++::گریه:

SMRAH1
شنبه 01 اسفند 1388, 11:10 صبح
سلام
در تست ها من ،فقط دو مسئله است که این وضعیت (خروجی با حجم 0) رو ایجاد میکنه:
1) فایل مبدا موجود نیست.
2) فایل مبدا،هماهنگ با فرمت اعلامی (پارامتر اول متد FreeImage_Load) نیست.مثلا عکس شما ،داتا تصویر bmp است ولی با پسوند jpg ذخیره شده و در هنگام اعلام فرمت به FreeImage_Load نیز ما آن را :

FreeImageAPI.FIF.FIF_JPEG
اعلام کرده ایم که در نهایت نمی تواند فایل مبدا را بار گذاری کند.
موفق باشید

SMRAH1
شنبه 01 اسفند 1388, 12:42 عصر
سلام
توی برنامه ای که آماده کردم،خودش به شکل اتوماتیک،اقدام به شناسایی فرمت فایل می کند.این برنامه فایل:

C:\1.imgرا خوانده و در مسیر

C:\1.tgaبا فرمت TGA ذخیره میکند.

در ضمن یاد آوری دو نکته مهم است:
1) خوده FreeImage دارای تابعی به نام GetFIFFromFilename است که با دریافت نام فایل،فرمت آن را شناسایی و باز می گرداند.اما این تابع برای کار ما خوب نیست.چون این تابع فرمت را بر اساس پسوند شناسایی می کند (همان مشکلی که در پست قبل هم به آن اشاره کردم).اما در این برنامه،با تست تک تک فرمت های مورد قبول FreeImage سعی در بار گذاری فایل می شود که اگر یکی از فرمت ها موفق بود،بارگذاری انجام شده است.
2) به نظر می رسد که FreeImage برخی عکس ها را نمی تواند بار گذاری کند (یا حداقل ذخیره کند).این مشکل را من با یک فایل bitmap 256 Color داشتم.که فایل tga خروجی مشکل دار بود (با نرم افزار CxImage و Paint.Net و GIMP تست کردم و آنها نتوانستند باز گذاری کند).

موفق باشید

BILLY_Mgs
شنبه 01 اسفند 1388, 16:15 عصر
سلام
توی برنامه ای که آماده کردم،خودش به شکل اتوماتیک،اقدام به شناسایی فرمت فایل می کند.این برنامه فایل:

C:\1.imgرا خوانده و در مسیر

C:\1.tgaبا فرمت TGA ذخیره میکند.

در ضمن یاد آوری دو نکته مهم است:
1) خوده FreeImage دارای تابعی به نام GetFIFFromFilename است که با دریافت نام فایل،فرمت آن را شناسایی و باز می گرداند.اما این تابع برای کار ما خوب نیست.چون این تابع فرمت را بر اساس پسوند شناسایی می کند (همان مشکلی که در پست قبل هم به آن اشاره کردم).اما در این برنامه،با تست تک تک فرمت های مورد قبول FreeImage سعی در بار گذاری فایل می شود که اگر یکی از فرمت ها موفق بود،بارگذاری انجام شده است.
2) به نظر می رسد که FreeImage برخی عکس ها را نمی تواند بار گذاری کند (یا حداقل ذخیره کند).این مشکل را من با یک فایل bitmap 256 Color داشتم.که فایل tga خروجی مشکل دار بود (با نرم افزار CxImage و Paint.Net و GIMP تست کردم و آنها نتوانستند باز گذاری کند).

موفق باشید

WOW خیلی ممنون کار کرد . ایشالله بری کربلا...:خجالت::قلب:
راستی این پروژه شما فایل dll توش نبود چجوری FreeImage.dll رو ایمپورت کرد ؟؟

SMRAH1
شنبه 01 اسفند 1388, 17:11 عصر
سلام
فایل FreeImage.dll رو کنار فایل اجرایی برنامه کپی کن!
موفق باشی

BILLY_Mgs
شنبه 01 اسفند 1388, 19:47 عصر
سلام
فایل FreeImage.dll رو کنار فایل اجرایی برنامه کپی کن!
موفق باشی

میدونم !
جالب اینجا بود که بدون اینکه کپی کنم کار کرد!!!

SMRAH1
شنبه 01 اسفند 1388, 21:37 عصر
میدونم !
جالب اینجا بود که بدون اینکه کپی کنم کار کرد!!!
سلام
احتمالا در پوشه system32 یک کپی از FreeImage.dll قرار گرفته است (به شکل پیشفرض برنامه ها به دنبال dll در کنار برنامه می گردند و اگر پیدا نکنند،به سراغ پوشه های system32 و system در پوشه WINDOWS رفته و dlld را درون آنها جستجو می کنند - این توضیحات رو برای مبتدی ها نوشتم که بعدا دچار سردر گمی نشوند،شما که حرفه ای هستید :لبخندساده: )
موفق باشید

kia1349
یک شنبه 02 اسفند 1388, 06:34 صبح
دوست عزیز آیا در این dll امکان کانورت تصویر از نوع MODI یا همون microsoft office document imaging به تصویر از نوع system.drawing.image وجود دارد؟

SMRAH1
یک شنبه 02 اسفند 1388, 10:46 صبح
سلام
متاسفانه نمونه ای از این نوع فایل نداشتم که تست کنم.با این حال فهرست فایل ها پشتیبانی شده رو براتون می گذارم (خیلی از این اسمها مختصر شده است که برخی از اونها رو اصلا نمیشناسم!):

BMP
ICO
JPEG
JNG
KOALA
LBM
MNG
PBM
PBMRAW
PCD
PCX
PGM
PGMRAW
PNG
PPM
PPMRAW
RAS
TARGA
TIFF
WBMP
PSD
CUT
IFF
XBM
XPM
موفق باشید