PDA

View Full Version : استفاده از گرافیک در سی



NIMA_1981
سه شنبه 17 اسفند 1389, 22:12 عصر
سلام دوستان
جطوری متونم در سی از توابغ گرافیکی استفاده کنم مثل ایحاد یک فایل گرافیکی jpg- png ,... مثلا کد امنیتی درست کنم

amin1softco
سه شنبه 17 اسفند 1389, 22:56 عصر
بهترین راه استفاده از کتابخانه های آمادست
مثل devil یا GD

NIMA_1981
چهارشنبه 18 اسفند 1389, 01:02 صبح
میشه راهنمایی بیشتری کنید آیا با استفاده از این کتابخانه ها میتونم فایل های jpg رو هم بسازم

mohammadian7
چهارشنبه 18 اسفند 1389, 01:16 صبح
سلام
برای استفاده از توابع گرافیکی شما باید فایل graphics.h را include بفرمایید و سپس فایلهای موجود در پوشه bin را در پوشه اصلی توربو سی بریزید.
وباید mode گرافیکی و driver مربوط به سیستم خود را هم برای برنامه معرفی کنید.

NIMA_1981
چهارشنبه 18 اسفند 1389, 01:43 صبح
ببنید من شاید یک مقدار بد توضیح داده باشم من یک مثال از کاری که می خوام بزنم رو شرح میدم شاید بعتر بتونید کمک کنید

1-ببنید وقتی تحت وب برنامه مینویسی یک مقدار برای برنامه های تخصصی مشکل داری و محدودیت اما میتونی قسمتی از برنامه را به یک زبان برنامه نویسی دیگه ای مثلا سی بنویسی و یک فایل اجرایی بسازی و با یک سری تنظیمات cgi میتونی از اون استفاده کنی -مثلا در رسم نمودار های ریاضی یا برنامه های مشابه به این یا محاسبات ریاضی و غیره

حالا من میهوام کارم رو با یک مثال ساده مثل ساخت کد های امنیتی که همه شما با اونها اشنا هسید یک سری کد هستش که از کنار هم قرار داد چند عدد و یا کاراکتر ساخته میشه یعنی بصورت یک فایل گرافیکی به شما خروجی رو میده این کار توی سی شارب یا زبان های برنامه نویسی که تحت وب هستش یا دستری به کتابخانه های گرافیکی دارد بسار اسان می باشد . اما در زبان سی من نمیتونم ین کار رو انجام بدم که برنامه خودش رندم باید یک جمله n کاراکتری بسازه البته نه در قالب کارکتر بلکه بصورت گرافیکی و خروجی ا بصورت یک فایل گرافیکی در اختیار کاربر قرار بده

فکر کنم الان واضح باشه که چی میخوام

tdkhakpur
چهارشنبه 18 اسفند 1389, 02:22 صبح
اما در زبان سی من نمیتونم ین کار رو انجام بدم که برنامه خودش رندم باید یک جمله n کاراکتری بسازه البته نه در قالب کارکتر بلکه بصورت گرافیکی و خروجی ا بصورت یک فایل گرافیکی در اختیار کاربر قرار بده


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

NIMA_1981
چهارشنبه 18 اسفند 1389, 02:43 صبح
دوست من متوجه نشدید که من چی گفتم اولا این یک مثال برای استفاده از ابزرهای گرافیکی بارس تبدیل کارکتر به عکس بود من نمیخوام تصاویر را پردازش کنم بلکه باید تصویر رو درست کنم شما فکر کن که کاربر یک یری عدد را به عتوان ارگومان وارد میکنه و برنامه یک نمودار رسم کنه و اونو به یک عکس تبدیل کنه

amin1softco
چهارشنبه 18 اسفند 1389, 11:18 صبح
دوست من یکمی اگر به نوشته من توجه می کردی به اینجا نمی رسیدی
شما باید چندتا عدد تصادفی ایجاد کنی و روی یک عکس مرجش کنی
برای اینکار در php از کتابخانه GD و غیره استفاده می شه که برای سی هم وجود داره می تونید دانلودش کنید
یک نگاهم به این برنامه بنداز
http://cimg.sourceforge.net

NIMA_1981
پنج شنبه 19 اسفند 1389, 11:46 صبح
اما این یک مثال بود که گفتم برای ایجاد فایل های گرافیکی باید چی کار کنم ؟

NIMA_1981
جمعه 20 اسفند 1389, 03:55 صبح
این کد یک فایل با پسوند bmp می سازه

#include"stdio.h"
#include <fstream>
int main(void){
FILE *f;
int filesize = 54 + 3*1*1;
unsigned char bmpfileheader[14] = {'B','M', 0,0,0,0, 0,0,0,0, 54,0,0,0};
unsigned char bmpinfoheader[40] = {40,0,0,0, 0,0,0,0, 0,0,0,0, 1,0, 24,0};
unsigned char bmpcontent[6] = {0,0,255};
unsigned char bmppad[3] = {0,0,0};
/* Construct header with filesize part */
bmpfileheader[ 2] = (unsigned char)(filesize );
bmpfileheader[ 3] = (unsigned char)(filesize>> 8);
bmpfileheader[ 4] = (unsigned char)(filesize>>16);
bmpfileheader[ 5] = (unsigned char)(filesize>>24);
/* Construct header with width and height part */
bmpinfoheader[ 4] = (unsigned char)( 1 );
bmpinfoheader[ 8] = (unsigned char)( 1 );
f = fopen("test.bmp","wb");
fwrite(bmpfileheader,1,14,f);
fwrite(bmpinfoheader,1,40,f);
fwrite(bmpcontent,3,6,f);
fclose(f);
return 1;
}



اما دیگه نمویدم جطوری باید مثلا یک نوشته به این اضافه کنم

vb8334
سه شنبه 24 اسفند 1389, 11:36 صبح
دوستان چطوری می تونم با گرافیک در dev c++ کار کنم.

ممنون

amin1softco
سه شنبه 24 اسفند 1389, 21:21 عصر
آخه تصویر بیتمپ که احتیاج به این حرفا نداره
شما در یک آرایه لودش کنید بعد اون اعداد رو هر کدوم رو دورش رو با یک شرط قیچی کنید یعنی مثلاً اگه پس زمینه مشکیه با یک شرط نذارید که نوشته بشه بعد روی ماتریس اول دوباره اونو بنویسید بعدم با همین روش بالا سیوش کنید

amin1softco
سه شنبه 24 اسفند 1389, 21:22 عصر
دوستان چطوری می تونم با گرافیک در dev c++ کار کنم.

ممنون
چه گرافیکی ؟
http://www.functionx.com/win32/Lesson10.htm

NIMA_1981
چهارشنبه 25 اسفند 1389, 01:32 صبح
ببنید یک سری هدر داره که من میسازم و فایل هم ساخته میشه -خالا می خوام یک شکل رو بهش بدم باید چه کارهایی انجام بدم میشه راهنمایی کنید مثلا شکا حرف A رو می خوام

amin1softco
چهارشنبه 25 اسفند 1389, 09:41 صبح
خوب شکل تمام حروف رو که داریم ؟
http://yekja.persiangig.com/ABC.bmp

NIMA_1981
چهارشنبه 25 اسفند 1389, 19:12 عصر
سلام ممنون که این بحث رو پی گیری میکنید -امیدوارم که تا به نتیجه رسیدن این موضوع به من کمک کنید

ببن دوست من
http://up.iran-ps.com/images/496bm1.jpg
حالا این بر اساس این حدول رنگ نوشته شده
http://up.iran-ps.com/images/424bm2.jpg
جالا اگه معادل هر کد رو جایگزن کنیم به این شکل میشه
http://up.iran-ps.com/images/524bm3.jpg

این رو من نتیجه گرفتم اما جند تا سوال دارم -
1- این عکس در یک ماتریس 8*8 ساخته شده این چه نسبتی با اندازه واقعی این عکس داره و چطوری باید محاسبه کرد
2- منظور از عکس 24 بیتی چیست اینم میدونم که در هر پیکسل 24 بیت فرار داره اما دقیقا متوجه نشدم مثلا این عکس بالا چند بیتی است ؟
3- چطوری این کد رو به فایل bmp اضافه کنم
با تشکر

amin1softco
پنج شنبه 26 اسفند 1389, 00:03 صبح
ببین دوست عزیز
شما در هدر یا سرآیند فایل مشخص می کنید اندازه عکس چند در چنده ؟؟؟؟
http://www.brackeen.com/vga/bitmaps.html
من یک سورس داشتم دقیقاً جواب این سوال بود ولی هرچی دنبالش می گردم پیدا نمی شه:لبخندساده:

NIMA_1981
شنبه 28 اسفند 1389, 08:39 صبح
دوست من او لیک بالا رو خوندم اما اونجا بیشتر درباره هدر سایت توضیج داده اگه روش رو هم بگید من خودم انجام میدم