ورود

View Full Version : سوال: گرافيك در ويژوال فاكس



aalami
سه شنبه 25 فروردین 1388, 09:02 صبح
با سلام مي خواستم بدانم انجام كارهاي گرافيكي نظير رسم منحني و تغيير رنگ پيكسل ... و خروجي آن
به bmp - jpg وجود دارد . توابع گرافيكي آن چيست ؟

mehran_337
سه شنبه 25 فروردین 1388, 09:24 صبح
تمام امکانات فوق بلکه بسیار بیشتر و حتی اعمال کارهایی نظیر فتوشاپ در GDI فاکس با مثال وجود دارد . سرچ کنید نتیجه شو ببینید

aalami
چهارشنبه 26 فروردین 1388, 10:40 صبح
با سلام ضمن تشكر در GDI فاكس بيشتر تو ضيح بفرماييد من در Samples Graphics دو فرم ديدم كه نيازم
براورده نشد ميخواهم در prg با توابع به پيكسل دسترسي داشته و با اعمالي نظير بين دو يا چند نقطه داده شده منحني رسم كرد و يا اينكه با دسترسي به پيكسل هاي يك تصوير تغييراتي مانند سياه و سفيد كردن و غيره انجام داده و آنرا به يك تصوير ديگر ذخيره نمود.

mehran_337
یک شنبه 30 فروردین 1388, 13:27 عصر
سرچ می کردید مطالب زیادی در این زمینه پیدا می کردین.
برای نمونه به سایت foxite مراجعه کنید مثلا این آدرس
http://weblogs.foxite.com/vfpimaging/archive/2006/06/13/1825.aspx
و یا توضیحات مایکروسافت :
http://msdn.microsoft.com/en-us/library/ms947605.aspx

وقتی در ایکس پی می خواهید شات دان کنید می بینید وقتی باکس حاوی دکمه شات دان ظاهر می شود بک گراند ویندوز به آرامی سیاه و سفید می گردد در لینک زیر این مثال را با فاکس توسط gdi طراحی کردند
http://weblogs.foxite.com/bernardbout/archive/2008/09/25/6871.aspx

سورس اصلی رو دانلود کنید همه مثال های gdi توش هست

aalami
سه شنبه 01 اردیبهشت 1388, 11:30 صبح
با سلام و تشكر از آقاي مهران , در سايت foxit.com مواردي از قبيل چرخش تصوير , گراند و افكت شات دان وجود
داشت ولي در دسترسي به پكسل هاي يك تصوير و اعمال تغييرات در آن توابعي مشاهده نشد .
ضمنا اگر در تبديل رنگ هاي RGB به CMYK كد نويسي وجود دارد راهنمايي فرماييد .

amir.azimi2000
چهارشنبه 02 اردیبهشت 1388, 07:46 صبح
با سلام .
ببخشيد كه من وارد بحثتون ميشم ولي ذكر نكته اي را ضروري دانستم .
در نظر داشته باشيد كه ويژوال فاكس پرو جهت طراحي برنامه هايي كه به با اطلاعات سروكار دارند ارائه شده و يك زبان طراحي و كار با امور گرافيكي نيست و همين قدر هم كه گرافيك را پشتيباني ميكنه بايد كلاهمون را بالا بيندازيم .
تشكر ميكنم از مهران عزيز كه سوال هيچكس را بي پاسخ نميگذارد .

mehran_337
چهارشنبه 02 اردیبهشت 1388, 14:02 عصر
در خواص فرم از point استفاده کنید که پارامتر x , y را می گیرد و رنگ آن نقطه را بر می گرداند مثلا اگر تصویری در فرم باشد که پیکسل قرمز رنگی در سطر 5 و ستون 15 داشته باشد با دستور


wait wind thisform.point(5,15)

رنگ آن نقطه برگردانده می شود

حال اگر بخواهیم نقطه ای را با رنگ دلخواه تعریف کنیم ابتدا با thisform.forecolor = ??? رنگ مورد نظر را بجای ؟؟؟ می نشانیم سپس با دستور :

thisforn.pset(5,15) آن پیکسل را تغییر رنگ می دهیم.مثلا با دستورات زیر یک خط افقی ترسیم می شود


FOR i = 10 TO 20
thisform.PSet(i,5)
ENDFOR

aalami
دوشنبه 07 اردیبهشت 1388, 10:08 صبح
با سلام و تشكر

با اين كد رسم خط با رنگ قرمز به صورت مورب انجام شد اما در گرفتن پيكسل و تغيير يك تصوير خواص ( )pset ,
( )point وجود نداشت .
‍ ‌
X=0
Y=1
x1=150
y1=100
DO WHILE (x<=x1)
This.Picture='F:\COMPUTER\IMAGE004.JPG'
this.ForeColor=8388863 && RED
CLOXY=This.Point(X,Y)
this.PSet(X,Y)

x=x+1
y=y+1
ENDDO

mehran_337
دوشنبه 07 اردیبهشت 1388, 12:06 عصر
pset , point از خواص فرم هستند نه خواص تصویر شما هنگامیکه با پیکسل ها کار می کنید دیگر باید مبحث شی گرایی را فراموش کنید به این معنی که مثلا

فرمی به رنگ تمام سفید داریم که تصویری روی آن قرار می گیرد که از نقطه 5و5 تا 30و50 فرم را با رنگ قرمز در بر گرفته است از دید شی گرایی دو شی داریم یکی فرم که سفید است و یکی تصویر که قرمز است
اما از دید پیکسلی صفحه ای داریم که همه ابعادش را نقاط سفید در بر گرفته و نقاط مذکور را پیکسل قرمز یعنی یک پارچه یا فلات ( همانند اینکه در فتوشاپ بحث چند لایه و تک لایه داریم)

حتی دکمه و تکست باکس هم در مبحث پیکسلی همینگونه است یعنی شما توسط خواص point در فرم رنگ نقطه ای را بر می گردانید که دکمه قرار دارد یعنی برنامه آن را از پیکسل خود فرم تلقی می کند
امید وارم منظورم را رسانده باشم.

tabiat75
پنج شنبه 04 شهریور 1389, 18:34 عصر
چگونه میتوان کد RGB مربوط به یک موقعیت point را بدست آورد .
مثلا THISFORM.POINT(100,150) در فرم یک عدد 6 رقمی است . چگونه میتوان کد سه رنگ RGB را از این کد 6 رقمی استخراج نمود.

binyaz2003
پنج شنبه 04 شهریور 1389, 18:45 عصر
اگر راهنماي اين متد رو مطالعه کنيد درخواهيد يافت که کدي رنگي که برميگرداند کد RGB هست علا.ه بر اين شما با تابع RGB(Red,Green,Blue) کد RGB رو دريافت کنيد.

tabiat75
پنج شنبه 04 شهریور 1389, 18:57 عصر
با تشکر از استاد بی نیاز
من میخواستم که کد 6 یا 8 رقمی رو تبدیل به rgb کنم یعنی به تفکیک رنگ .
مثلا کد 657930 چگونه تبدیل به rgb(10,10,10) میشود.
یعنی اگر بخواهیم خروجی point را به تفکیک rgb داشته باشیم چکار باید بکنیم؟؟

binyaz2003
جمعه 05 شهریور 1389, 03:27 صبح
http://www.berezniker.com/content/pages/visual-foxpro/convert-color-rgb

farhad_shiri_ex
یک شنبه 14 شهریور 1389, 17:27 عصر
با تشکر از راهنمایی های دوست عزیز مان مهران در تکمیل جواب ایشان باید عرض کنم اصولا ویژوال فاکس پرو مباحث Image Processing را پشتیبانی نمیکند البته بعضی کارها را میشود با GDI انجام داد. همانطور که مطرح شد. چون اصولا زبان وی فاکس جزء زبانهای سطح بالا است. به همین دلیل توانایی این کارها را ندارد البته امکان دارد بعضی ها با استفاده از توابعی که در زبانهای سطح پایین طراحی شده اند اقدام به چنین کار های بکنند که البته عاقلانه نیست.

بني حسيني
جمعه 26 شهریور 1389, 13:28 عصر
فكر كنم سيستم تركيب رنگ در برنامه هايي كه از سيستم رنگ (rgb)استفاده مي كنن به اين صورته كه شما مقدار صفر تا 255 رو براي قرمز و همين مقدار رو براي سبز و آبي قرار مي دين. مثلا 255و255و255 رنگ سفيد كامل رو به شما ميده و 0و0و0 رنگ سياه رو. با ضرب اين سه عدد اون عدد شما بدست مياد. حالا چطوري ميشه از دل اون عدد ميليوني سه عدد را خارج كني حالات مختلفي پيش مياد با رنگهاي متفاوت چون مثلا 190*125*89 و 89*190*125 هر دو به يه عدد ميرسه ولي دو تا رنگ مختلفن.