# Native Code > برنامه نویسی در Delphi > مباحث عمومی دلفی و پاسکال >  کار با عکس

## AbiriAmir

سلام
فرض کنید عکس یه آدم رو داریم
میخوام وقتی کرسر موس اومد رو سرش دور سرش قرمز بشه...
وقتی اومد رو دستش دور دستش قرمز بشه و همین طور تا قسمت های مختلف بدنش
چیکار کنم؟؟؟
اگه بخوام مختصات کرسر رو هم چک کنم از بس موس کند میشه انگار اصلا حرکت نمیکنه چون حداقل باید 100 تا مختصات رو چک کنم...
تازه چجوری چک کنم؟؟؟
شکلم که یه مربع یا مستطیل نیست...
ممکنه مثلث باشه، 5 ضلعی باشه یا هر چیز دیگه...

----------


## Pr0grammer

چرا نمی دید به یه فلش کار، براتون با فلش درست کنه؟!
بعدش بدون هیچ کد نویسی ای می تونید توی برنامه ازش استفاده  کنید؟

----------


## AbiriAmir

مگه با فلش به این راحتی میشه؟؟؟
چجوری با برنامم ربطشون بدم؟؟؟
یعنی منظورم اینه که با فلش اینکار رو کردم
حالا فرض کنید اگه کرسر موس اومد رو سر اون آدم یه کوئری بگیرم
چجوری اینکار رو بکنم؟؟؟

----------


## Mahmood_M

> فرض کنید عکس یه آدم رو داریم
> میخوام وقتی کرسر موس اومد رو سرش دور سرش قرمز بشه...
> وقتی اومد رو دستش دور دستش قرمز بشه و همین طور تا قسمت های مختلف بدنش
> چیکار کنم؟؟؟


برای این کار 2 راه به نظرم میرسه ، اول اینکه از پردازش تصویر استفاده کنید ولی باز تشخیص صورت و یا دست یا دیگر اعضای بدن کار بسیار سختی هست و ایجاد این حساسیت در یک فایل تصویری عادی کمی غیر ممکن به نظر میرسه ، اما راه دوم اینه که از فایلهای سه بعدی استفاده کنید ، از ابزارهایی که شرکتهای سازنده ی نرم افزارهایی مثل 3DMax یا Poser ارائه میدن ...
اگه از نرم افزار Poser استفاده کرده باشید ، حتما دیدید که امکان انتخاب اعضای بدن وجود داره ولی بعید می دونم همچین حساسیتی در مورد فایلهای 2 بعدی بشه ایجاد کرد ( نشد نداره ولی ... ! ) ...
یا راه دیگه اینه که خودتون یک فرمت تصویری بسازید و از اون استفاده کنید ، یعنی اطلاعات مربوط به اعضای بدن رو در فایلتون ذخیره کنید و بعد اونها رو در برنامه بخونید ...

در ضمن ، این کار با فلش امکان پذیر نیست !

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

----------


## Pr0grammer

پست اولتون :



> میخوام وقتی کرسر موس اومد رو سرش *دور سرش قرمز بشه*...
>  وقتی اومد رو دستش *دور دستش قرمز بشه* و همین طور تا قسمت های مختلف بدنش


و پست دومتون :



> چجوری با برنامم ربطشون بدم؟؟؟
>  حالا فرض کنید اگه کرسر موس اومد رو سر اون آدم *یه کوئری بگیرم*


این ارتباط (کوئری گرفتن) رو اول بیان نکرده بوددید....
در حالت اول میشه با فلش تغییر رنگ رو ایجاد و با کامپوننت ازش توی برنامه استفاده کرد ؛ اما در حالت دوم، پیشنهاد Mahmood_N  فکر میکنم مناسب باشه...

موفق باشید

----------


## merced

يه راه ديگه هم تيكه تيكه كردن عكس هست . 
و گذاشتن لايه هاي عكس روي هم و .. ...

----------


## behzad_dr

سلام دوست خوب .

همون طور که دوستان گفتند میشه از چند تا لایه روی هم استفاده کرد . مثلا تصویر قسمت صورت visible باید false  باشد و وقتی موس روی صورت تصویر اول رفت باید true شود . لینک زیر رو دانلود کنید اگر نیازی بود بفرمائید تا کد مربوطه رو ارسال کنم . 
http://uplud.co.cc/27/1288847045.zip

----------


## Mahmood_M

دوست عزیز این فایلی که شما گذاشتید با تشخیص چهره فرق میکنه ، دوستمون می خواد اعضای بدن رو انتخاب کنه ...
فکر کنم برای رویداد حرکت کردن موس نوشته شده ، یعنی وقتی موس روی عکس اومد تصویر نمایش داده بشه و وقتی رفت پنهان نشه ! ...

به نظر من بهترین کار ایجاد یک فرمت فایل جدید هست که فقط با برنامه ی خودتون کار کنه و شاید بشه در آینده اون رو گسترش داد ...

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

----------


## AbiriAmir

نه
من اعضای بدن رو مثال زدم
صرفا نمیخوام اعضای بدن رو تشخیص بدم
حالا با فلش نمیشه مثلا یه اطلاعاتی رو روی یه فایل ذخیره کرد؟؟؟
اون وقت برنامه هم اطلاعات رو از اون فایل میخونه و تشخیص میده که موس کجاست...

بعدم روی هم گزاشتن لایه ها راه مناسبی نیست چون هر شی Image یک مستطیله ولی سر انسان مستطیل نیست...

----------


## AbiriAmir

> سلام دوست خوب .
> 
> همون طور که دوستان گفتند میشه از چند تا لایه روی هم استفاده کرد . مثلا تصویر قسمت صورت visible باید false  باشد و وقتی موس روی صورت تصویر اول رفت باید true شود . لینک زیر رو دانلود کنید اگر نیازی بود بفرمائید تا کد مربوطه رو ارسال کنم . 
> http://uplud.co.cc/27/1288847045.zip


مشکلش اینه که به صورت مستطیل انتخاب میشه
چیزی که من میخوام یه مستطیل نیست پس نمیشه از چند لایه استفاده کرد...
بعدم برنامه من حداقل هزار تا از این قسمت ها داره
من بیام هزارتا Image بزارم و...
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟  ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

----------


## behzad_dr

> مشکلش اینه که به صورت مستطیل انتخاب میشه
> چیزی که من میخوام یه مستطیل نیست پس نمیشه از چند لایه استفاده کرد...
> بعدم برنامه من حداقل هزار تا از این قسمت ها داره
> من بیام هزارتا Image بزارم و...
> ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟  ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟



حق با شماست ، پس بهترین راه حل همون فلش ه .

----------


## Mahmood_M

دوستان می تونن توضیح بدند که فلش در اینجا چه کاربردی میتونه داشته باشه ... !

----------


## Ahmad Chehreghani

> دوستان می تونن توضیح بدند که فلش در اینجا چه کاربردی میتونه داشته باشه ... !


شما در فلش با Shapeها  Button  طراحي ميکنيد. يعني يک عکس يا يک Shape که در اين مثال شبيه سر انسان هستش رو به عنوان Button  معرفي ميکنيد. در رويداد حرکت موس شما بهش يک Shape ديگه بهش ميديد و از اين به بعد وقتي موس رفت روي Shape اولي ، Shape  دومي ظاهر ميشه، ميتونيد وقتي موس اومد روي Shape  يک فرمان به دلفي ارسال بشه و ...
در کل با چند کليک ساده شما ميتونيد اين کارها رو انجام بديد.
استفاده از فلش (فايل هاي SWF) يکي از راههاي ساخت CD هاي مولتي مديا هستش.
.

----------


## zidane

قسمت انیمیشنی کار باید با فلش انجام بشه و در هر قسمتی که لازم بود کدی اجرا بشه باید یه fscommand فرستاده بشه.
در دلفی هم باید با کامپوننت های کار با فلش، انیمیشن فلش رو در برنامه استفاده کرد و برای اون fscommand ها کد مورد نظر رو نوشت

----------


## Mahmood_M

> شما در فلش با Shapeها Button طراحي ميکنيد. يعني يک عکس يا يک Shape که در اين مثال شبيه سر انسان هستش رو به عنوان Button معرفي ميکنيد.


خوب ، چند تا Shape باید ساخت ؟ ، چند نوع سر وجود داره ؟!!
فایل فلش در این مورد اصلا هیچ کاربردی نخواهد داشت ، درخواستی که دوستمون کردند یک نوع تسخیص هست که خودشون هم اشاره کردند که سر یا اعضای بدن یک مثال بود ، تشخیص اجزای موجود در یک عکس چیزی فراتر از اینهاشت ...
اگه با فوتوشاپ کار کرده باشید حتما با ابزار Magic Wand آشنا هستید ، این ابزار با استفاده از رنگ یک قسمت رو انتخاب میکنه ...
در این مورد هم شاید بشه روی رنگها کار کرد ولی باز نمیشه به این سادگیها به نتیجه رسید ... !
دوستمون نمی خواد یک چیزی مثل یک نقشه درست کنه که مثلا بخواد تمام اجزاش رو جدا بزاره و برای هرکدوم در فلش یک shape درست کنه ، بنده با فلش کار کردم و کمی آشنایی دارم و با اطمینان کامل عرض میکنم که با توجه به توضیحاتی که دوستمون در مورد هدفشون دادن و با توجه به اینکه هدف کار بر روی یک عکس خاص نیست و خیلی از نکات دیگه ، با اطمینان کامل عرض میکنم که فلش در این مورد هیچ کاربردی نخواهد داشت ...

موفق و پیروز باشید ...

----------


## Ahmad Chehreghani

> خوب ، چند تا Shape باید ساخت ؟ ، چند نوع سر وجود داره ؟!!
> فایل فلش در این مورد اصلا هیچ کاربردی نخواهد داشت ، درخواستی که دوستمون کردند یک نوع تسخیص هست که خودشون هم اشاره کردند که سر یا اعضای بدن یک مثال بود ، تشخیص اجزای موجود در یک عکس چیزی فراتر از اینهاشت ...
> اگه با فوتوشاپ کار کرده باشید حتما با ابزار Magic Wand آشنا هستید ، این ابزار با استفاده از رنگ یک قسمت رو انتخاب میکنه ...
> در این مورد هم شاید بشه روی رنگها کار کرد ولی باز نمیشه به این سادگیها به نتیجه رسید ... !
> دوستمون نمی خواد یک چیزی مثل یک نقشه درست کنه که مثلا بخواد تمام اجزاش رو جدا بزاره و برای هرکدوم در فلش یک shape درست کنه ، بنده با فلش کار کردم و کمی آشنایی دارم و با اطمینان کامل عرض میکنم که با توجه به توضیحاتی که دوستمون در مورد هدفشون دادن و با توجه به اینکه هدف کار بر روی یک عکس خاص نیست و خیلی از نکات دیگه ، با اطمینان کامل عرض میکنم که فلش در این مورد هیچ کاربردی نخواهد داشت ...


من منظورم کار ايشون نبود و دوست هم نداشتم به سوال ايشون(AmirBeginner) که سوالشون رو درست نميپرسه جواب بدم.
ايشون اسم تاپيکش رو گذاشته : _کار با عکس_
تو تاپيک اول نوشته : _مختصات کرسر رو هم چک کنم_
تاپيک دومش :_ یه کوئری بگیرم_
تاپيک سومش :_ اطلاعاتی رو روی یه فایل ذخیره کرد_
تاپيک چهارمش : _ هزار تا از این قسمت ها داره_
و تا پست آخر ايشون اين کاربران پاسخ دادن : Pr0grammer ، Mahmood_N، merced ، behzad_dr
-----
با توضيحاتي که ايشون دادن من پيشنهاد ميکنم که ايشون يه سري به نرم افزار ArcGIS بزنن ببينن کارهايي که اين نرم افزار در رابطه با لايه ها انجام ميده رو مد نظرشون هست يا نه.

----------


## AbiriAmir

> من منظورم کار ايشون نبود و دوست هم نداشتم به سوال ايشون(AmirBeginner) که سوالشون رو درست نميپرسه جواب بدم.


کسی شما رو مجبور به جواب دادن نکرده
من سوال پرسیدم و شما لطف کردین و جواب دادین




> ايشون اسم تاپيکش رو گذاشته : _کار با عکس_
> تو تاپيک اول نوشته : _مختصات کرسر رو هم چک کنم_
> تاپيک دومش :_ یه کوئری بگیرم_
> تاپيک سومش :_ اطلاعاتی رو روی یه فایل ذخیره کرد_
> تاپيک چهارمش : _ هزار تا از این قسمت ها داره_
> و تا پست آخر ايشون اين کاربران پاسخ دادن : Pr0grammer ، Mahmood_N، merced ، behzad_dr
> -----
> با توضيحاتي که ايشون دادن من پيشنهاد ميکنم که ايشون يه سري به نرم افزار ArcGIS بزنن ببينن کارهايي که اين نرم افزار در رابطه با لايه ها انجام ميده رو مد نظرشون هست يا نه.


اولا پست نه تاپیک
در ضمن:
بحث اول من هم کار با عکس توی دلفی بود
دوستانپیشنهاد دادن که من با فلش کار کنم
منم گفتم چجوری باید به دلفی متصلش کنم تا کوئری بگیرم...
پیشنهاد دادم که اطلاعات رو توی یه فایل ذخیره کنیم...

بعدم من کوئری رو تو پست اول نگفتم چون قرار نبود پای فلش وسط کشیده شه
قرار بود با دلفی بشه که اگه میشد کوئری گرفتنش رو خود انجام میدادم و لازم نبود  تو سوال مطرحش کنم


در هر صورت

من داده هام مشخصه
این طور نیست که مثلا برنامه تشخیص صورت باشه و کاربر توش عکس لود کنه و برنامه صورتش رو تشخیص بده
فقط یه عکس ثابت و معین هست...
ولی همین عکسه از هزار قسمت تشکیل شده که هر قسمتش هم یه شکل معلوم نیست...
میخوام با آوردن موس روی هر قسمت دور اون قسمت High Light بشه یا رنگش تغییر کنه یا هر جوری که این قسمت از قسمت های دیگه جدا بشه
با کلیک رو هر کدومشون هم یه کوئری با توجه به اون قسمت بگیرم

قبلا از همکاری همه ممنونم

----------


## babakmomeni

سلام. دوست گرامی با توجه به پست های قبلی، اگه منظورتون رو درست متوجه شده باشم، احتمال دادم چیزی شبیه به *این برنامه* به کارتون بخوره. اگه این جور بود، بفرمایین تا کامپوننتش رو تقدیم کنم.
پیروز باشید.

----------


## دلفــي

> سلام
> فرض کنید عکس یه آدم رو داریم
> میخوام وقتی کرسر موس اومد رو سرش دور سرش قرمز بشه...
> وقتی اومد رو دستش دور دستش قرمز بشه و همین طور تا قسمت های مختلف بدنش
> چیکار کنم؟؟؟
> اگه بخوام مختصات کرسر رو هم چک کنم از بس موس کند میشه انگار اصلا حرکت نمیکنه چون حداقل باید 100 تا مختصات رو چک کنم...
> تازه چجوری چک کنم؟؟؟
> شکلم که یه مربع یا مستطیل نیست...
> ممکنه مثلث باشه، 5 ضلعی باشه یا هر چیز دیگه...


شما می توانید با استفاده از کامپوننت ImageEn و انتخاب خاصیت miSelectMagicWand از میان خواص MouseInteract به راحتی به خواسته خود دست یابید .
این خاصیت همانند ابزار انتخاب (Magic Wand) فتوشاپ عمل کرده و حتی قادر به تفکیک رنگهای انتخابی نیز می باشد .

رمز فایل پیوستی : www.asiapardaz.com

----------


## AbiriAmir

> شما می توانید با استفاده از کامپوننت ImageEn و انتخاب خاصیت miSelectMagicWand از میان خواص MouseInteract به راحتی به خواسته خود دست یابید .
> این خاصیت همانند ابزار انتخاب (Magic Wand) فتوشاپ عمل کرده و حتی قادر به تفکیک رنگهای انتخابی نیز می باشد .
> 
> رمز فایل پیوستی : www.asiapardaz.com


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

----------


## AbiriAmir

> سلام. دوست گرامی با توجه به پست های قبلی، اگه منظورتون رو درست متوجه شده باشم، احتمال دادم چیزی شبیه به *این برنامه* به کارتون بخوره. اگه این جور بود، بفرمایین تا کامپوننتش رو تقدیم کنم.
> پیروز باشید.


من یه چیزی شبیه به همین نقشه آفریقا دارم ولی میخوام وقتی موس میاد روی هر قسمتش اون قسمته یه جوری متمایز بشه...
در ضمن تو این برنامه فایل frame.wmf رو پیدا نمی کنه...

----------


## babakmomeni

> من یه چیزی شبیه به همین نقشه آفریقا دارم ولی میخوام وقتی موس میاد روی هر قسمتش اون قسمته یه جوری متمایز بشه...
> در ضمن تو این برنامه فایل frame.wmf رو پیدا نمی کنه...


سلام. توی برنامه اصلی وقتی روی کشورها میری هایلایت میشه و چشمک می زنه. سایت کامپوننت اینه : http://www.superbitysoft.co.uk/page2.html . دموی نقشه افریقا هم با خود کامپوننت هست. البته من از سایت http://torry.net پیدا و دانلودش کردم. امیدوارم کارتون رو راه بندازه.
موفق باشید.

----------


## AbiriAmir

> سلام. توی برنامه اصلی وقتی روی کشورها میری هایلایت میشه و چشمک می زنه. سایت کامپوننت اینه : http://www.superbitysoft.co.uk/page2.html . دموی نقشه افریقا هم با خود کامپوننت هست. البته من از سایت http://torry.net پیدا و دانلودش کردم. امیدوارم کارتون رو راه بندازه.
> موفق باشید.


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

----------


## AbiriAmir

اصلا اسم این کمپوننت چیه؟؟؟

----------


## babakmomeni

> اصلا اسم این کمپوننت چیه؟؟؟


لینک توی پست قبلی بود. اسم کامپوننت هست : JPTAcetator

----------


## AbiriAmir

> لینک توی پست قبلی بود. اسم کامپوننت هست : JPTAcetator


لینک سایت خودش که باز نشد...
سایت Torry هم که ماشاالله هزار قسمت داره...

----------


## AbiriAmir

در ضمن تو سایت Torry که فقط Trialش هست
نسخه کاملش نیست

----------


## babakmomeni

> در ضمن تو سایت Torry که فقط Trialش هست
> نسخه کاملش نیست


سلام. سورس دموی کامپوننت، با همین نسحه ترایال کار می کرد. اگه فولش رو پیدا کردم، تقدیم می کنم.
موفق باشید.

----------


## Felony

بله کار میکنه ، ولی تا اونجا که یادمه نسخه ی Trial عکس یه خورشید رو گوشه ی کامپوننت نشون میداد ...

----------


## AbiriAmir

منون
دانلودش کردم
خیلی عالیه فقط هر کاری کردم نتونستم عکس خودم رو جایگزینش کنم...
یعنی در واقع خیلی چیزی سر در نیاوردم

----------


## AbiriAmir

ببینید
من میخوام نحوه کار با این کامپوننت رو یاد بگیرم...
کسی میتونه کمکم کنه؟؟؟

----------


## babakmomeni

> ببینید
> من میخوام نحوه کار با این کامپوننت رو یاد بگیرم...
> کسی میتونه کمکم کنه؟؟؟


سلام. راستش من خودم هم باهاش کار نکردم؛ توی سرچ دیدم به کار شما می خوره معرفیش کردم. تا دو سه روز گیر هستم ولی ظرف هفته آینده در رکاب شما و با کمک بقیه اساتید، ته و توش رو در خواهیم آورد.

----------


## AbiriAmir

ممنون
امیدوارم بتونیم با همکاری هم ته و توش رو در بیاریم
البته امیدوارم اساتید دیگه هم که در این زمینه تجربه دارن کمک کنن
در هر صورت از شما هم خیلی خیلی ممنونم
چون خیلی لازمش داشتم و دارم...

----------


## AbiriAmir

دوستان عزیز دوباره سلام
ته و توی این کمپوننت رو در آوردم
روش کارش اینه که دو لایه داره...

یه لایه عکس اصلی هست و یه لایه دیگه شبه عکس هست که رنگاش مشخصه و کاربر فقط لایه اول رو میبینه
مثل دو فایل ضمیمه...

کمپوننت یه رنگ Transparent داره که جزء رنگ های اصلی حسابش نمیکنه مثل رنگ سیاه در فایل 2 ضمیمه

بقیه رنگ ها دیگه...

مثلا همه زرد ها رو به عنوان منطقه یک میشناسه، آبی ها رو 2 و....
ولی همه این رنگ ها توی فایلی هست که کاربر نمیبینه
متاسفانه عکس ها رو مستقیما نمیتونیم لود کنیم و برای لود کردن 2 عکس 2 راه مختلف وجود داره
برای لود کردن عکس اول یعنی عکسی که کاربر اون رو میبینه یه خاصیت به اسم Backgroung داره که میتونین عکس رو لود کنین

ولی برای عکس دوم...
باید توی یه محیطی مثل paint گزینه select all رو بزنید و بعد کپیش کنید و بعد هم توی لایه مورد نظر از منوی ادیت کامپوننت گزینه Clipboard To Layer رو بزنید...

اگه توضیحات بیشتر خواستید من در خدمتم...

در ضمن کد نویسی هاش هم که تو سورس همو آفریقا کاملا معلومه...

*از همگی مخصوصا جناب babakmomeni ممنون...*

----------


## AbiriAmir

البته توی یه چیزیش موندم که اگه دوستان کمک کنن ممنون میشم...
اونم اینه که تو سورس آفریقا لیست رنگ هاش کلی رنگ داره ولی اگه یه جدید از این کمپوننت تو فرم بزاریم 30 رنگ بیشتر نداره...
در ضمن تو سورس خودش Index رنگ ها رو بهش داده...
حالا من از کجا بفهمم که ایندکس رنگم چیه؟؟؟
بشینم همه رنگ های لیست رو روش بکشم و هر کدومش معلوم نشد بگم همونه؟؟؟
این که خیلی ضایع هست...
در ضمن اگه رنگ من تو لیستش نبود چی؟؟؟

ممنون میشم اگه دوستان همکاری کنن...

----------


## AbiriAmir

چی شد؟
کسی کمک نمیکنه؟؟؟

----------

