PDA

View Full Version : باز کردن و نمایش عکس در دلفی



1072300
شنبه 29 خرداد 1389, 23:38 عصر
سلام به همه اساتید
در کنار فایل اجرایی برنامه ام پوشه ای به نام 1 قرار دارد که می خواهم در موضع لزوم با کلیک بر روی کلیدی عکسی را از داخل این پوشه خوانده و در ایمج نمایش دهد کسی می تواند در نوشتن کد این کار کمکم کند و آیا می شود از عکس ها محافظت کرد تا تنها در برنامه ام باز شود. :گیج::عصبانی:متشکرم

majidbestgame
یک شنبه 30 خرداد 1389, 04:45 صبح
روش های بسیار زیادی برای این کار وجو دارد....با این کد ها می تونی فیلت رو که در پوشه ی 1 و در کنار برنامه هست لود کنید....

procedure TForm1.Button1Click(Sender: TObject);
var path:string;
begin
path:=extractfilepath(application.ExeName);
image1.Picture.LoadFromFile('1\myimage.jpg');
// or
image1.Picture.LoadFromFile(path+'1\myimage.jpg');
end;


این کد مربوط به رویداد یک Button است

مصطفی ساتکی
یک شنبه 30 خرداد 1389, 09:02 صبح
آیا می شود از عکس ها محافظت کرد
از لینک ک چند روز پیش در موردش بحث شده بود می تونید استفاده کنید.
http://barnamenevis.org/forum/showthread.php?t=227505
یا می تونید از Steganography استفاده کنید http://www.barnamenevis.org/forum/showthread.php?t=7055
و یا می تونید از MD5 یا hash استفاده کنید و بسیاری از روش های رمز نگاری دیگه

majidbestgame
چهارشنبه 02 تیر 1389, 02:06 صبح
آیا می شود از عکس ها محافظت کرد
می تونی به یک روش ساده و خیلی قوی اتکا کنی...به صورتی که عکسی که میخوای در یک ایمیج نشان داده شود همراه برنامه ریسورس کنی سپس با استفاده از TResourceStream و LoadFromStream از اون عکس استفاده کنی به صورتی که هیچ کسی به اون عکست ( جز برنامه ی خود ) دسترسی نداره...اگه طریقه انجام این کارو میدونی که به نظر من روش خیلی خوبیه...اگرم مشگلی داشتی بگو تا برات یک کد مربوط به لود کردن عکس از ریسورس در برنامه برات بزارم :خجالت:

مصطفی ساتکی
چهارشنبه 02 تیر 1389, 07:58 صبح
می تونی به یک روش ساده و خیلی قوی اتکا کنی...به صورتی که عکسی که میخوای در یک ایمیج نشان داده شود همراه برنامه ریسورس کنی
راحت میشه اون resource رو هم تغییر داد.بهترین روش اینه که از کد گذاری استفاده کنید اگر نخاید تصویرتونو کد گذاری کنید اونوقت مجبور تغییرات در exe برنامتون از طریق تغییر مقایسه hash جدید با hash اولیه رو تشخیص بدید

1072300
جمعه 04 تیر 1389, 20:19 عصر
از همه شما دوستان که پاسخ دادید متشکرم اما مشکل اینجاست که تعداد عکس ها بالای ششصد عکس است و بنده متاسفانه نمی تونم هیچ کد گذاری روی عکس ها انجام دهم که از باز شدن عکس ها در هر برنامه ای به غیر از برنامه خودم محافظت کنم خواهش می کنم با مثال راهنمایی کنید متشکرم

مصطفی ساتکی
جمعه 04 تیر 1389, 21:49 عصر
اون روش هایی که در بالا گفته شد برای بعضی هاشون تو سایت کد موجود بود و مابقی هم به تفضیل توضیح داده شده بود .اگر یه کار آماده میخاین بایستی از Imageen استفاده کنید یه Sample به نام encrypt هم داره که جزئیات کارو بهتون شرح میده در ضمن ابتدا بایستی کل تصاویرتون با یه key دلخواه encrypt کنید و سپس هر کدوم که تو application تون نیاز داشتید decrypt می کنید.

1072300
جمعه 11 تیر 1389, 02:23 صبح
از همه شما دوستان که راهنمایی کردید متشکرم اما مشکل اینجاست که بنده خیلی مبتدی هستم اگر ممکنه با مثال و سورس راهنمایی کنید متشکرم.

sepahan82
سه شنبه 02 آذر 1389, 10:52 صبح
با سلام
چطوری میشه یک عکس از روی اینترنت رو توی TImage نمایش داد؟

vcldeveloper
سه شنبه 02 آذر 1389, 12:07 عصر
چطوری میشه یک عکس از روی اینترنت رو توی TImage نمایش داد؟
سوالتون مستقیما به موضوع این تاپیک ارتباطی نداره.

در هر حال، باید تصویر مربوطه رو دانلود کنید، و به صورت فایل یا stream ذخیره کنید، سپس آن را در TImage نمایش بدید. برای دانلود اون تصویر می تونید از متد Get مربوط به TIdHttp استفاده کنید. برای لود کردن تصویر در TImage هم به همان لینکی که در پست شماره 3 ارائه شده، مراجعه کنید.

Felony
سه شنبه 02 آذر 1389, 12:11 عصر
با سلام
چطوری میشه یک عکس از روی اینترنت رو توی TImage نمایش داد؟
بارها بحث شده ؛
میتونید اون عکس رو دانلود کنید و بعد فایل دانلود شده رو تو TImage بارگذاری کنید یا اینکه اون رو تو یه Memory Stream دریافت کنید و داخل TImage نمایش بدید ؛ کد زیر که نوشتم نحوه گرفتن عکس و نمایش توسط یک Memory Stream رو نشون میده :

var
MS: TMemoryStream;
Jpg: TJPEGImage;
begin
MS:= TMemoryStream.Create;
Jpg:= TJPEGImage.Create;
try
IdHTTP1.Get('http://images.free-extras.com/pics/s/sunset_landscape-1242.jpg', MS);
Ms.Seek(0, soFromBeginning);
Jpg.LoadFromStream(MS);
Image1.Picture.Assign(Jpg);
finally
FreeAndNil(Jpg);
FreeAndNil(MS);
end;
end;

یک کامپوننت IdHTTP رو روی فرمتون بزارید و کتابخانه Jpeg رو به Uses برنامتون اضافه کنید .

پاسخ ها همزمان شد .

BORHAN TEC
سه شنبه 02 آذر 1389, 12:42 عصر
با توجه به مطلب نوشته شده توسط دوست عزیزم آقای مجتبی تاجیک...
توجه داشته باشید که در هنگام دریافت فایل حدود چند ثانیه برنامه Hang میکند که برای رفع این مشکل می توان یک کنترل IdAntiFreeze بر روی فرم قرار داد تا مشکل رفع شود.

mbshareat
سه شنبه 02 آذر 1389, 19:16 عصر
با سلام:قلب:
چطور میشه فایل بیت مپ تو resource گذاشت؟:متفکر:
ممکنه یه نمونه بذارین؟:گیج:

Felony
سه شنبه 02 آذر 1389, 19:24 عصر
با سلام:قلب:
چطور میشه فایل بیت مپ تو resource گذاشت؟:متفکر:
ممکنه یه نمونه بذارین؟:گیج:

بعد از این مدت فعالیت از شما بعیده که قوانین رو رعایت نکنید ؛ هر سوال در تاپیک مجزا !

به مقاله ساخت و استفاده از ریسورس ها (http://barnamenevis.org/forum/showthread.php?t=187090) مراجعه کنید .

mbshareat
سه شنبه 02 آذر 1389, 19:39 عصر
با سلام
جناب آقای تاجیک عزیز
تو همین تاپیک در پست 4 در مورد ذخیره در Resource توضیح صحبت شد من هم به همین مناسبت پرسیدم (ولی یه کم دیر)
در هر صورت ممنونم که به این سرعت جواب دادین!

hst_809
دوشنبه 28 شهریور 1390, 19:26 عصر
روش های بسیار زیادی برای این کار وجو دارد....با این کد ها می تونی فیلت رو که در پوشه ی 1 و در کنار برنامه هست لود کنید....

image1.Picture.LoadFromFile('1\myimage.jpg');


قربان من موقع لود مشکل دارم.Error میده میگه پسوند اشتباهه.هرچقدر هم پسوند رو عوض میکنم بازم اررور میده.

BORHAN TEC
دوشنبه 28 شهریور 1390, 20:04 عصر
یونیت JPEG رو به فهرست USES اضافه کن. اگر مشکل حل نشد بگویید که از کدام نسخه دلفی استفاده می کنید.