View Full Version : چطور میشه فایل PNG رو نمایش داد؟
X-DATA
چهارشنبه 12 بهمن 1390, 17:12 عصر
سلام من از بورلند XE استفاده می کنم همانطور که می دونید کنترل TImage قابلیت نمایش فایلهای png رو نداره
چه روشی برای باز کردن و نمایش فایلهای PNG تو borland c++ وجود داره ؟ ممنون میشم راهنمایی کنید
اگه کامپوننتی هم می شناسید که با borland c++ XE سازگار باشه برای نمایش فایلهای png لطفا معرفی کنید ممنون
Ananas
جمعه 14 بهمن 1390, 10:18 صبح
سلام.
ممنون سوال شما باعث شد خودمم برم سراغش چون لازمش دارم. باید pngimage.hpp رو در c++ و برای دلفی هم pngimage.pas رو به پروژه اضافه کنی و اینم کد مثال :
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TPngImage * pn;
pn = new Pngimage::TPngImage();
pn->LoadFromFile("C:\\test.png");
this->Canvas->Draw(100, 100, pn);
delete pn;
}
X-DATA
جمعه 14 بهمن 1390, 21:23 عصر
ممنون از پاسخ مفید ولی یک مشکل هست من این کد رو استفاده کردم خاصیت transparent رو ندارم یعنی عکسم پشت زمنیه سفید میگریه هنگام نمایش در tImage به نظر شما چه راه حلی وجود داره چون در غیر اینصورت دیگه لزومی استفاده از فرمت png نخواهد بود
TPngImage * png = new Pngimage::TPngImage();
png->LoadFromFile("1.png") ;
png->CreateAlpha();
Image1->Canvas->Draw(0, 0, png);
یک سوال دیگه اون هم اینکه یا همچین کتابخانه ای برای فایلهای jpg هم هست اگر هست نامش چیست جون jpgimage.hpp جواب نداد اگر هست نامش چیست اگر نیست راه حل چیست ممون
BORHAN TEC
یک شنبه 16 بهمن 1390, 20:48 عصر
این دیگه چه مدل کدهاییه؟! :متعجب:
به جای این همه دردسز یک کنترل TImage روی فرمتون قرار بدین و مطابق کدی که در زیر قرار داده ام عمل کنید:
#include <pngimage.hpp>
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("E:\\Image\\add_card.png");
}
//---------------------------------------------------------------------------
Ananas
سه شنبه 18 بهمن 1390, 15:27 عصر
ممنون از پاسخ مفید ولی یک مشکل هست من این کد رو استفاده کردم خاصیت transparent رو ندارم یعنی عکسم پشت زمنیه سفید میگریه هنگام نمایش در tImage به نظر شما چه راه حلی وجود داره چون در غیر اینصورت دیگه لزومی استفاده از فرمت png نخواهد بود
TPngImage * png = new Pngimage::TPngImage();
png->LoadFromFile("1.png") ;
png->CreateAlpha();
Image1->Canvas->Draw(0, 0, png);
یک سوال دیگه اون هم اینکه یا همچین کتابخانه ای برای فایلهای jpg هم هست اگر هست نامش چیست جون jpgimage.hpp جواب نداد اگر هست نامش چیست اگر نیست راه حل چیست ممون
برای فایل های jpe از کتابخونه jpeg باید استفاده کنید. برای استفاده از transparent هم باید خاصیت transparent شی TImage تون رو فعال کنید.
این دیگه چه مدل کدهاییه؟! :متعجب:
به جای این همه دردسز یک کنترل TImage روی فرمتون قرار بدین و مطابق کدی که در زیر قرار داده ام عمل کنید:
آقا شاهین ممنون. اینم یه راهش هست این کد من مثال ساختنش و استفاده تو هرجایی غیر از TImage بود به هر حال نکته اینجاست که اگه pngimage رو به پروژه اضافه نکنید حتی با TImage هم نمی تونید فایل های png رو بخونید، اگه خواستید از TImage استفاده کنید و png رو با اون باز کنید pngimage رو به پروژه اضافه کنید. البته وقتی تو محیط برنامه نویسی یک png رو تو TImage باز می کنید خودش این کتابخونه رو اضافه میکنه.
X-DATA
چهارشنبه 19 بهمن 1390, 12:35 عصر
من خاصیت transparent رو فعال کردم ولی باز پس زمینه عکس سفید میشه.!
در ضمن اگر به صورت کد در C++ ،از کامپوننت Timage برای باز کردن عکس png یا jpg استفاده کنید خطا میده شاید مگر اینکه این کتابخانه را اضافه کرده باشی شاید تو دلفی اینطور نباشه ولی تو بورلند دقیقا همینطوره
نام کتابخانه jpeg چی هست ؟
Ananas
پنج شنبه 20 بهمن 1390, 02:37 صبح
من خاصیت transparent رو فعال کردم ولی باز پس زمینه عکس سفید میشه.!
در ضمن اگر به صورت کد در C++ ،از کامپوننت Timage برای باز کردن عکس png یا jpg استفاده کنید خطا میده شاید مگر اینکه این کتابخانه را اضافه کرده باشی شاید تو دلفی اینطور نباشه ولی تو بورلند دقیقا همینطوره
نام کتابخانه jpeg چی هست ؟
برای من پس زمینه سفید نمیشه درست کار می کنه. شاید فایل png ای که داری اشکال داره. اگه واقعا transparent باشه اگه ببری تو photoshop پی زمینه شطرنجی از پشتش دیده میشه. راهش همینی هست که عرض کردم دیگه خودت بررسی کن ببین کجای کار درست نیست.
بله از طریق کد اگه باز کنید باید کتابخونه هاشم اضافه کنید.
jpeg.hpp برای فایل های jpg و pngimage.hpp برای فایل های png و gifimg.hpp برای فایل های gif __ برای delphi هم همینا با پسوند pas. یعنی بنویس :
#include <jpeg.hpp>
#include <pngimage.hpp>
#include <gifimg.hpp>
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.