• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

البحث في المنتدى

Showing results for tags 'color chessboard image'.

  • البحث بالتاقات

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • البحث بكاتب الموضوع

تم إيجاد 12 نتيجة

  1. السلام عليكم بداية اهلا وسهلا بالجميع انا كنت مفتوننا بالفيجول بيسك 6 وكنت احد اعضاء هذا المنتدى الرائع ولعل اسمي في هذا المنتدى هو walid_t22t عندما كنت في الثانية والعشرين من العمر واظن ان اول تسجيل في هذا  المنتدى كان في سنة 2004 عموما ابحرت في عالم البرمجة ثم اضطرتني الظروف للابتعاد بضع سنين وها أنا ارجع مجدداً محاولاً ادراك مافاتني من العلم والحمد لله كانت بداية العودة مع الفيجول بيسك دوت نت 2010+2008 وبدايتي كانت تصميم مشروع صغير جدا عن الموظفين وجمع بعض المعلومات عنهم وعرض سي في خاص باي موظف مثلاً وبذلك يسهل عمل تقارير عن اي موظف ولكن واجهتني مشكلة كبيرة تكمن المشكلة في عرض تقرير عن موظف معين وعند عرض التقرير في كريستال ريبورت يجب ان يتم عرض صورة الموظف معه ولله الحمد وجدت الحل في احد المواقع الاجنبية وقمت بتجربت الكود وهو جاهز  وايضا قمت بتعديل الشروحات باللغة  العربية حتى تعم الفائدة باذن الله مستعد لاي سؤال او استفسار بخصوص هذا الموضوع   ولكم جزي الشكر sourcecode_NEW.rar
  2. السلام عليكم,,, اخواني ارجو مساعدتي,, مطلوب انشاء صورة شطرنج ملون في الماتلاب,,انا عملت الكود بس معرفت اربط مع دالة rand()
  3. كيفية حفظ صور في قاعدة بيانات SQL Server  باستخدام ADO.NET 1- أنشاء و افتح قاعدة بيانات في برنامج Sql Server Managements Studio  بأسم DB  من ثم 2- بعد أنشاء قاعدة البيانات قم بتنفيذ الاستعلام من خلال خيار New Query الأتي : create table Images (  ImagesID int primary key,  ImagesName nvarchar(25),  Photo image )     3 - قم بانشاء الواجهة التالية GUI  في برنامج Visual Studio 2010    4- سمي العناصر بالترتيب التالي txtNo  التسلسل TextBox txtImageName  اسم صاحب الصورة TextBox btnNew  جديد Button btnSave   حفظ Button btnLoadImage  تحميل الصورة Button من قائمة الخصائص a.       Filter : Images|*.jpg b.      DefaultExt : jpg اضافة اداة openFileDialog1 من قائمة خصائص SizeMode: StretchImage اضافة اداة pictureBox1 using System.IO; using System.Data.SqlClient; اضافة   5- قم نسخ الكود لأجل عمل البرنامج using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Data.SqlClient;   namespace SaveReadImagesFromSql {     public partial class Form1 : Form     {         //---------------------         SqlConnection conn = null;         DataRow dr = null;         String ImageFile = null;         DataSet dsImage=null;         SqlDataAdapter daImage = null;        //----------------------         public void Initdata()         {             // تعريف اتصال             conn = new SqlConnection(@"Data Source=MOHAMMAD-PC\SERVER2014;Initial Catalog=DB;Integrated Security=True");               // 1. تعريف نسخة عن قاعدة البيانات             dsImage = new DataSet();               // 2.ربط الاتصال لاجل مليء النسخة بالبيانات             daImage = new SqlDataAdapter("select * from Images", conn);               // 3. تنفيذ الحذف و المليء و التحديث والاضافة             SqlCommandBuilder cmdBldr = new SqlCommandBuilder(daImage);               // 4. مليء النسخة بالبيانات             daImage.Fill(dsImage);          }           private byte[] getImageData()         {             byte[] imagedata;             FileStream fs = new FileStream(ImageFile, FileMode.Open, FileAccess.Read);             BinaryReader reader = new BinaryReader(fs);             imagedata = new byte[fs.Length];             reader.Read(imagedata, 0, (int)fs.Length);             reader.Close();             return imagedata;         }           //----------------------------------         public Form1()         {             InitializeComponent();             Initdata();         }           private void btnLoadImage_Click(object sender, EventArgs e)         {             DialogResult rs = openFileDialog1.ShowDialog();             if (rs == DialogResult.OK)             {                 ImageFile = openFileDialog1.FileName;                 pictureBox1.LoadAsync(openFileDialog1.FileName);             }             }           private void Form1_Load(object sender, EventArgs e)         {             btnNew.Enabled = true;             btnSave.Enabled = false;             btnLoadImage.Enabled = false;             txtImageName.ReadOnly = true;             txtNo.ReadOnly = true;           }           private void btnNew_Click(object sender, EventArgs e)         {             btnNew.Enabled = false;             btnSave.Enabled = true;             btnLoadImage.Enabled = true;             txtImageName.Text = "";             txtNo.Text = "";             txtImageName.ReadOnly = false;             txtNo.ReadOnly = false;             pictureBox1.Image = null;             //انشاء سجل جديد             dr = dsImage.Tables[0].NewRow();         }         private void btnSave_Click(object sender, EventArgs e)         {             btnNew.Enabled = true;             btnSave.Enabled = false;             btnLoadImage.Enabled = false;             txtImageName.ReadOnly = true;             txtNo.ReadOnly = true;                dr[0] = Convert.ToInt32(txtNo.Text);             dr[1] = txtImageName.Text;             dr[2] = getImageData();             //اضافة سجل النسخة قاعدة البيانات             dsImage.Tables[0].Rows.Add(dr);                      //تحديث قاعدة البيانات الاصلية من خلال النسخة             daImage.Update(dsImage);           }     } }           SaveReadImagesFromSql.zip SaveReadImagesFromSql.7z كيفية حفظ صور في قاعدة بيانات SQL Server باستخدام ADO.pdf
  4. تحية طيبة  مطلوب للشركة برمجية مبرمج image processing  متمرس في هذا العمل للعمل براتب جيد على لغة البرمجة #C أو Delphi السكن والطعام مؤمن  الشركة في تركيا اسطنبول للتواصل:   [email protected] [email protected]   أو الاتصال على أحد الأرقام:   00905383624303001214329904500442032399320
  5. إستخدام الألوان داخل console

    الكود الموجود هنا جزء من مكتبة  MathX مع بعض التعديلات   الألوان داخل الـ console لها إستخدامات عديدة مثل التفرقة بين الرسائل العادية و رسائل الخطأ و التحذيرات ... إلخ و مثال على هذا مترجم clang، أيضا يمكنك استخدامهم للتسلية.   نظام Windows   داخل windows توجد وسيلة واحدة لتلوين محتويات الـ console و ذلك عن طريق استخدام الأمر color بتمريره للدالة system :) ... أنا اضحك معك، هذه الوسيلة غير فعالة حيث انها تقوم بتلوين كافة الـ console و ليس اجزاء معينة و بالتالي الوسيلة الوحيدة لدينا هي بإستخدام windows API: extern "C"{ struct CSBI { unsigned long long whatever; unsigned short attributes; unsigned long long window; unsigned max_window_size; }; void* __stdcall GetStdHandle(unsigned hStd); bool __stdcall GetConsoleScreenBufferInfo(void* hConsoleOutput, CSBI* lpCSBI); bool __stdcall SetConsoleTextAttribute(void* hConsoleOutput, unsigned short wAttributes);}إذا استخدمت windows API من قبل فستعلم بكل تأكيد ان الطريقة التى استخدمها هنا ليست الطريقة المثلي و سبب إستخدامي لها هو عدم رغبتي بإستخدام windows.h لتسريع عملية ترجمة المشروع. (ليس هذا المشروع و لكن المشروع الذى أتي منه هذا الكود).   دوال الـ API المستخدمه هنا متاحة بدءا من نظام تشغيل windows 2000 وحيث ان نظام التشغيل هو ويندوز فسأفترض ان مكتبة Kernel32 تم الربط عليها. التركيب CSBI هو CONSOLE_SCREEN_BUFFER_INFO مع بعض التعديلات. الدالة GetStdHandle استخدمها للحصول على handle للـ standard output stream و التى يتم الكتابة داخلها من داخل لغة ++c عن طريق cout. الدالة GetConsoleScreenBufferInfo أستخدمها للحصول على الألوان الإفتراضية الخاصة بالـ console عندما يفتح أول مره حتى أستطيع من خلالهم عمل reset للألوان. الدالة SetConsoleTextAttribute استخدمها كي اقوم بتحديد اللون الذى اريده لمخرجات الـ console. المعامل wAttributes الموجود بالدالة SetConsoleTextAttribute هو الذى نحتاج إليه و إليك توثيق ايسر قليلا مما لدي ميكروسوفت: البت الأول يمثل اللون الأزرق، البت الثاني يمثل اللون الأخضر، البت الثالث يمثل اللون الأحمر، البت الرابع يمثل حدة اللون فواحد يصبح اللون حاد و صفر على حالته الطبيعية. الأربع بتات فى حالتهم الأن يغيروا من لون الخط فإن أردت منهم تغيير لون الخلفيه فقم يتحريكهم لليمين بقدر اربع بتات (بمعنى ان قيمة اول 4 بتات تماثل قيمة ثاني اربع بتات و المجموعة الأولي للون الخط و الثانية للون الخلفيه). بتات الألوان مجتمعه تمثل 8 ألوان و هم: +--------+-------+------+-------+------+-----+---------+--------+-------+| id | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |+--------+-------+------+-------+------+-----+---------+--------+-------+| name | Black | Blue | Green | Cyan | Red | Magenta | Yellow | White |+--------+-------+------+-------+------+-----+---------+--------+-------+| name2 | أبيض | أصفر | إرجواني | أحمر | سماوي | أخضر | أزرق | أسود |+--------+-------+------+-------+------+-----+---------+--------+-------+  أنظمة أخرى   داخل أنظمة التشغيل الأخرى أغلب الـ terminals تستخدم ANSI colors و هي عبارة عن نص يحتوى على قيمة رقمية تمثل العملية التى تريد القيام بها، هذا النص له شكل ثابت: ESC[xxmحيث ESC هى Escape character أى '033\' أو 'x1B\' يليها القوس ']'. xx هي قيمة بالنظام العشرى تمثل العملية التى تريد القيام بها و هي فى حالتنا هذه ستكون إما لتغيير لون الخط أو الخلفيه او لتغيير حدة اللون. الحرف m ليدل على انتهاء سلسلة الأمر.   ما يهمنا هو قيمة الألوان و هي: +--------+-------+-----+-------+--------+------+---------+------+-------+| id | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |+--------+-------+-----+-------+--------+------+---------+------+-------+| name | Black | Red | Green | Yellow | Blue | Magenta | Cyan | White |+--------+-------+-----+-------+--------+------+---------+------+-------+لقيمة لون الخط قم بإضافة 30 على قيمة اللون و لقيمة لون الخلفية قم بإضافة 40 على قيمة اللون. لجعل اللون فاتح استخدم الرقم 1. لإعادة اللون إلى حالته الطبيعية: توجد بعض القيم و لكن الشائع هو استخدام الرقم صفر لإعادة الإعدادات إلى حالتها الإفتراضية و هو ما استخدمه هنا. أنواع البيانات المشتركة فى البداية نحتاج لكتابة الكود الذى سيتم إستخدامه من خلال windows coloring و ANSI coloring.   // terminal colorsenum color{ black = 0, blue = 1, green = 2, cyan = 3, red = 4, magenta = 5, yellow = 6, white = 7};// terminal color brightenum bright{ no = 0, // use color standard bright yes = 1 // use a bright color};// location to apply color intoenum place{ front = 0, // apply to foreground back = 1 // apply to background};// terminal color classtemplate<typename type>struct ccolor_t{ // set foreground/background colors to default state inline static void reset() { type::reset(); } // set color attributes inline static void set_color(color c, bright b = no, place p = front) { type::set_color(c, b, p); }};النوع color يمثل الألوان التى يمكننا إستخدامها. النوع bright يمثل حدة اللون. النوع place يمثل المكان الذى سيتم تلوينه. النوع ccolor_t يمكنك اعتباره كجسر يقوم بإستدعاء الكود الخاص بفئة معينه هى التى تم تمريرها له من خلال المعامل type. الكود الخاص بويندوز   struct windows_cc{ inline static void reset() { pdata& p = pdata::get(); SetConsoleTextAttribute(p.handle, p.attrib); } inline static void set_color(color c, bright b, place p) { unsigned short attrib = (unsigned short)c; if (b == yes) attrib |= 0x8; if (p == back) attrib <<= 4; SetConsoleTextAttribute(pdata::get().handle, attrib); } struct pdata { void* handle; unsigned short attrib; inline pdata() { handle = GetStdHandle(unsigned(-11)); CSBI tmp; GetConsoleScreenBufferInfo(handle, &tmp); attrib = tmp.attributes; } inline static pdata& get() { static pdata data; return data; } };};الجزء الذى يحتاج للتوضيح هو الفئه pdata و التى استخدمها كحاوية للمتغيرات التى استخدمها و الدالة get بها تعيد إلي نسخة static منها. الكود الخاص بـ ANSI   struct ansi_cc{ inline static void reset() { std::cout << "\x1B[0m"; } inline static void set_color(color c, bright b, place p) { static const char* arr[] = {"\x1B[0m", "\x1B[1m"}; #define ANSI_CC(C) "\x1b[" #C "m" static const char* const colors[][8] = { { ANSI_CC(30), ANSI_CC(34), ANSI_CC(32), ANSI_CC(36), ANSI_CC(31), ANSI_CC(35), ANSI_CC(33), ANSI_CC(37) }, { ANSI_CC(40), ANSI_CC(44), ANSI_CC(42), ANSI_CC(46), ANSI_CC(41), ANSI_CC(45), ANSI_CC(43), ANSI_CC(47) } }; #undef ANSI_CC std::cout << arr[b] << colors[l][c]; }};أسئلة إضافية ماذا نفعل لو اردنا عدم استخدام الألوان؟ فى هذه الحالة فقط قم بتعريف الفئة التالية: struct no_colors{ inline static void reset() {} inline static void set_color(color, bright, place) {}};  و لكن كيف سأحدد أى تلك الفئات استخدم؟ أيضا حتى الأن ccolor_t لا يوجد لها فائدة؟   لنأخذ الأمور خطوة خطوة; لعدم إستخدام الألوان نحتاج لتعريف macro لتفيد قيمته بذلك: #define NO_COLORS 0صفر تعنى استخدم الألوان و واحد تعني لا تستخدم الألوان، لنرى كيف سيتم إستخدام كل هذه الفئات معا:   #if NO_COLORS == 1// add no_colors class defination heretypedef ccolor_t<no_colors> ccolor;#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__WINDOWS__)// add extern C section here// add windows_cc class defination heretypedef ccolor_t<windows_cc> ccolor;#else // use ANSI coloing// add ansi_cc class defination heretypedef ccolor_t<ansi_cc> ccolor;#endifالأن الكود جاهز للإستخدام الأن و إليك مثال: #include <iostream>using std::cout;int main(){ cout << "this is a default terminal color.\n"; ccolor::set_color(green, yes, front); cout << "this is a foreground green color.\n"; ccolor::reset(); ccolor::set_color(green, yes, back); cout << "this is a background green color.\n"; ccolor::reset(); cout << "this is a default terminal color.\n";}المفترض ان يتم طبع النصوص لديك بالألوان.     بعض العمليات الأخرى   مع العلم ان ccolor يعمل بشكل جيد لكن الن يصبح الأمر أفضل إذا كتب المثال السابق كالتالي: #include <iostream>using std::cout;int main(){ cout << "this is a default terminal color.\n"; cout << foreground(green, yes) << "this is a foreground green color.\n"; cout << reset_color << background(green, yes) << "this is a background green color.\n"; cout << reset_color << "this is a default terminal color.\n";}فى هذا الجزء سنتطرق لكتابة iostream manipulators لجعل تنفيذ هذا المثال متاحا. لكتابة mainpulator أولي (مثل endl) يكون كالتالي: ostream& new_line(ostream& stm){ stm << '\n'; return stm;}و يتم إستدعائه كالتالي: cout << new_line;و فى حالتنا هذه reset_color هو mainpulator أولي: ostream& reset_color(ostream& stm){ ccolor::reset(); return stm;}المشكله ستحدث إن اردت كتابة mainpulator له معامل أو أكثر (مثل setw, setfill) فى هذه الحالة تحتاج لكتابة فئة وسيطة لتعمل كجسر بين المعامل >>operator و الـ mainpulator الخاص بك، مثال: struct ccolor_info{ color c; bright b; place p; ccolor_info(color cc, bright bb, place pp) : c(cc), b(bb), p(pp) {}};ostream& operator << (ostream& stm, const ccolor_info& ci){ ccolor::set_color(ci.c, ci.b, ci.p); return stm;}ccolor_info foreground(color c, bright b){ return ccolor_info(c, b, front);}ccolor_info background(color c, bright b){ return ccolor_info(c, b, back);}بهذه الـ mainpulators يمكن تنفيذ المثال السابق.   ccolor.zip example_1.zip example_2.zip     و الله ولي التوفيق
  6. السلام عليكم ورحمة الله وبركاته   انا طالب جامعي متدرب في شركة  طلب مني برنامج ادخال وسترجاع البيانات  يتكون من : 1- مدخل بيانات (بيانات المدخل , بيانات المعقب , المستندات و صور الفواتير) 2- معقب 3- مشرف على العمليه   -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= المشكلة في حفظ الصور لاني حفظت مسار الصوره وليست الصوره نفسها وتكون المشكله ان الصوره تعرض في جهاز المدخل والاجهزة الاخرى لاتعرض فيها الصور   وهذا الكود السابق: Dim j as string Dim k As New OpenFileDialog        "|*.*" = k.Filter          ()k.ShowDialog         j = k.FileName         (PictureBox1.Image = Image.FromFile(j       Dim cmd As New OleDb.OleDbCommand("insert into Attach_T values(" & TextBox7.Text & ",'" & TextBox6.Text & "','" & j & "','" & TextBox5.Text & "')", con)                       Try                 con.Open()                   cmd.ExecuteNonQuery()                  MsgBox("Done")             Catch ex As Exception                 MsgBox(ex.Message)             Finally                 con.Close()             End Try -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= اريد كود يحفظ الصورة بنوع image في قاعدة بيانات sql server ويقرائها من القاعده ويكون الربط بالكود فقط بدون tools   اتمنى سرعة الاجابه وشكرا..,
  7. لدي جدول يحتوي على حقلين   1- elan_pic  وهو مسار الصورة                     2- pic_url    الرابط المراد الانتقال له عند الضغط على الصورة   لدي Datalist   بداخلها اداة من نوع  Image استخدمت الكود التالي لاظهار الصورة في Image ImageUrl='<%# Eval("elan_pic") %>' /> استطعت أن اظهر الصورة داخل Image  من قاعدة البيانات لكن السؤال اريد عندما اضغط على الصورة ينتقل للرابط الموجود في حقل    Pic_url   اتمنى افادتي   ( علما انني اريد استخدام الاداة Image وليس اداة غيرها )        
  8. بسم الله الرحمن الرحيم السلام عليكم أحاول وضع صورة في MIDlet و عندما كتبت الكود علما أنني أستخدم   sun java wireless toolkit و ضغطت على أمر build لم يظهر لي وجود أي أخطاء و  لكن عندما جربت التطبيق ظهرت رسالة في البرنامج أن هناك خطأ و لم يتم تحميل الصورة إلى التطبيق و ها هو الكود : import javax.microedition.midlet.*;     import javax.microedition.lcdui.*;       public class class1 extends MIDlet {    Display display;  Form form;  Image myimage;                          public void startApp(){      display = Display.getDisplay (this);  form = new Form ("Image App");  try{    myimage=Image.createImage("/x.png");    form.append(myimage);  }  catch(Exception e){          System.out.println("Image loading error!");    }      display.setCurrent(form);         }              public void pauseApp (){}          public void destroyApp(boolean unconditional){}       }         ـــــــــــــــــــــــــــــــ   و قد راعيت أن تكون الصور بامتدداد png و أن تكون في مجلد src مع العلم أن الكود : form.append(myimage); كنت سابقاً قد وضعته مباشرة فوق display.setCurrent(form);  و لكن كانت تظهر لي رسالة خطأ بدون أن يفتح البرنامج على عكس عندما غيرت موقع الكود الذي كان يفتح بدون أن توجد صورة و أتمنى ممن يعرف الإجابة حول حل هذه المشكلة ألا يبخل بها علي
  9. كنت عايز اعرف ازاى اعمل حاجة على ويندوز فورم  تخلى المستخدم يقدر يعمل  6 خطوط زى الصورة كده و يعمل تحريك ليهم  عادى و فى نفس الوقت يحفظ مكان الخط ده بالظبط و يحسب المسافات ما بين كل خط على كل عين لوحديها  و استخدام المسافات ديه فى عمل حسابات عليها الصورة http://www.mediafire.com/?52aaa8ze5o7wcpuhttp://www.mediafire.com/?52aaa8ze5o7wcpu  
  10. بسم الله الرحمن الرحيم تم بعون الله إطلاق الاصدار التجريبي الأول من مكتبة معالجة الصور "image processing library" والتي تحوي عدداً لا بأس به من الدوال الأساسية للتعامل مع الصور سنستعرضها هنا . يُذكر بأن هذا الاصدار تجريبي وما يزال يحوي عدداً من المشاكل (وأهمها السرعة) سأعمل على تصحيحها في الاصدارات القادمة . اعادة تحجيم الصور : في حال اردت تغيير ابعاد الصور أو إنشاء صور مصغرات , يُمكنك استخدام دالة resize() التي تُستخدم بثلاث طُرق : الطريقة الاولى هي تحديد وسيطين الاول هو مقبض الصورة , وأما الثاني فهو النسبة المئوية لاعادة تحجيم الصورة ولا يلزم استخدام الرمز % في الوسيط الثاني . مثلاً الكود التالي يقوم بتصغير الصورة بنسبة 50 % : <?php$image = imagecreatefromjpeg('example.jpg');resize($image, 50);header("Content-Type: image/png");imagepng($image);?> الطريقة الثانية هي تمرير ثلاث وسائط الى الدالة , الاول هو مقبض الصورة و الثاين هو عرض الصورة الناتجة مقدرا ً بواحدة البكسل و الثالث هو ارتفاع الصورة , لكن قد تُسبب هذه العملية بتشويه الصور احيانا . <?php$image = imagecreatefromjpeg('example.jpg');resize($image, 340, 260);header("Content-Type: image/png");imagepng($image);?> أما الطريقة الثالثة فتقبل نفس وسائط الطريقة الثانية لكن مع زيادة وسيط رابع للمحافظة على ابعاد الصورة , حيث يقوم بتحديد اكبر الابعاد ومن ثم ايجاد النسبة المئوية للتضغير أو التكبير . <?php$image = imagecreatefromjpeg('example.jpg');resize($image, 340, 260, true);header("Content-Type: image/png");imagepng($image);?>اقتطاع الصور : وذلك بواسطة الدالة crop() التي تقبل خمسة وسائط , الاول هو مقبض الصورة و الثاني هي احداثيات X الخاصة ببداية مكان الاقتطاع والثالث هو احداثيات Y , اما الرابع فهو عرض الصورة الناتجة و الخامس هو ارتفاع الصورة . <?php$image = imagecreatefromjpeg('example.jpg');crop($image, 50, 50, 150 , 100);header("Content-Type: image/png");imagepng($image);?> قلب الصور : مكتبة GD لا توفر بشكل افتراضي امكانية قلب الصور رأسياً أو افقيا ً , لكن مع الدالتين flip_vertical, flip_horizontal التان يُمرر إليهما وسيط وحيد هو مقبض الصورة , يمكن عمل ذلك بكل سهولة كما في المثال التالي الذي يقوم بقلب الصورة رأسيا : <?php$image = imagecreatefromjpeg('example.jpg');flip_vertical($image);header("Content-Type: image/png");imagepng($image);?> اضافة علامات مائية : يمكن إضافة نص أو صورة كعلامة مائية , وذلك باستخدام إحدى الدالتين text_watermark() أو image_watermark() , وكما واضح من التوثيق فان الدالة text_watermark() تاخذ تسعة وسائط لكن اهمها هي احداثيات X و Y ; حيث تقبل قيمة عددية بالإضافة الى احدى الكلمات "right , left , center" يالنسبة الى X , أو "top , buttom , center" بالنسبة الى Y , و الوسيط المنطقي $angled يحدد هل النص سيكتب بشكل افقي ام بتميله وجعله واقعا على قطر الصورة . اما الدالة image_watermark() فتقبل (بالإضافة الى الصورة الاصلية و صورة العلامة المائية) احداثيات X وY كما في الدالة السابقة بالإضافة الى نسبة الشفافية . عمل تدرج لوني : وذلك باستخدام الدالة gradient() التي تقبل الوسيط الأول كالصورة الهدف والوسيط الثاني هو مصفوفة ثنائية البُعد البعد الاول هو مصفوفة ايضا ً تحوي قيم لون بداية التدرج (الاحمر , الاخضر , الازرق) و كذلك البعد الثاني لكن للون نهاية التدرج , والوسيط الاخير يُمثل اتجاه التدرج (افقي أو عمودي) , مثال : <?php$image = imagecreatefromjpeg('example.jpg');gradient($image, array(array(255, 128, 0), array(255, 255, 255)), 'h');header("Content-Type: image/png");imagepng($image);?>بقية الدوال لا تحتاج الى شرح , فأغلبها لا تقبل الا وسيطا ً وحيدا ً هو الصورة الهدف وتطبيق مختلف التأثيرات على الصوروهذه الدوال هي "antialiasing,old_tv,slice,pixelate,spread,border,gray,unsharp,duotone,interlace,scatter,mirror,screen" وهذه أمثلة عنها : اضافة الى ذلك قُمت بتضمين الدالة التي قمت بكتابتها في موضوع الكتابة باللغة العربية على الصور مع تصحيح مشكلة كتابة حرفين أو حرف واحد ومشكلة الاحرف الانكليزية و الارقام و الرموز مع بقاء مشكلة التشكيل قائمة . ميزات هذه المكتبة : تحوي عددا من التأثيرات الغير موجودة في بقية المكتبات , تمكين الكتابة باللغة العربية . عيوب هذه المكتبة : البطئ - عدد من الفلاتر لا تستطيع التحكم فيها بالشكل المطلوب (فلتر unsharp mask مثلاً) , عدم وجود ملف README يحوي شرح مفصل لكامل الدوال . لا تزال هذه المكتبة في بداياتها واتمنى ان اسمع آرائكم ومقترحاتكم في التعليقات تحميل هذه المكتبة : image_processing_library_v0.4.zip
  11. تحريك صورة على الاطار

    السلام عليكم ورحمه الله وبركاته اتمنى المساعده السريعه من اى حد قد يكون قام بعمل هذه الفكره وهى ان يكون لدينا اطار JPanel باقوم بالرسم عليها واريد ان اضع صوره على هذه الـ JPanel   ولكن هذه الصوره تكون متحركه (Object) ممكن احركه وامسحه فى وقت اتمنى المساعده فى اقرب وقت التسليم غدا والبروجكت كله متوقف على هذه الجزئيه     وشكرا
  12. مكتبة DevIL . http://openil.sourceforge.net/ تمهيد ... الجزء الاول : هذه دروس .. سأضعها ... عن هذه المكتبة .,,,, لنثبت للجميع ان السي ,,,, ليست مجرد شاشة سوداء او ارجوانية .. بعد ان ذقت الامرين في تعلم هذه المكتبة ... بالرغم من انها سهلة الا انه لاتوجد دروس متكاملة عنها ... الا درس واحد خاص بـ GL هذه المكتبة تمكننا من تحميل عشرات الانساق من الصور .. الانساق التي تستطيع المكتبة فتحها : .bmp, .cut, .dds, .doom, .gif, .ico, .jpg, .lbm, .mdl, .mng, .pal, .pbm, .pcd, .pcx, .pgm, .pic, .png, .ppm, .psd, .psp, .raw, .sgi, .tga and .tif اما الانساق التي تستطيع المكتبة حفظها : .bmp, .dds, .h, .jpg, .pal, .pbm, .pcx, .pgm,.png, .ppm, .raw, .sgi, .tga and .tif. ولو قارنت هذه المكتبة .. بـ برنامج ACDSee لعرفت قيمتها .. بل الفوتوشوب .. لايستطيع فتح وحفظ كل هذه الانساق . بالرغم من انه ينفرد ببعض الانساق ... اضافة لذلك توفر هذه المكتبة .. عدة دوال تمكنك من اضافة تأثيرات للصورة . وهذه المكتبة تتكامل مع Opengl Directx WIN API Allegro كانت هذه المكتبة موجهة في الاساس الى opengl لكن بعد ذلك صارت عامة وتحول اسمها من openil الى DevIL هذه احد الروايات التي قرأتها : ) والمكتبة تعمل على الويندوز ولينوكس .... وايضا على عدة مترجمات و لغات Djgpp, MSVC++, Linux gcc, Delphi, Visual Basic, Power Basic and Dev-C++. راجع http://openil.sourceforge.net/features.php لتحميل اي نوع : ILuint ImageId;ilGenImages(1, &ImageId);ilBindImage(ImageId);ilLoadImage("monkey.tga");فقط ....... اذا كنت لاتريد استخدام مكتبات تسهل عليك تحميل الصور فعليك ان تقرأ ملفات الصور بطريقتك وهذا يعني عشرات الاسطر ... :) اولا حمل هذه الحزمة : http://prdownloads.sourceforge.net/openil/...l-SDK-1.6.7.zip قم بفك الملف المضغوط .. ستجد ثلاث ملفات DLL هي DevIL.dll ILU.dll ILUT.dll انسخها الى مجلد system32 .. يعني في الغالب تجده هنا c:\WINDOWS\system32 ثم انسخ المكتبات التالية من المجلد LIB DevIL ILU ILUT والصقها في مجلد المكتبات الخاص بمترجمك .. وهذا يختلف من مترجم لاخر .. لو كنت تستخدم visual c اذهب لمجلد المترجم .. واتبع : C:\Program Files\Microsoft Visual Studio\VC98\Lib الان الصق الملفات اللي نسختها الى ذلك المجلد . طبعا على حسب موقع المترجم عندك .. الان بقي الملفات الرأسية / افتح المجلد اللي حملت قبل قليل ... وبالتحديد مجلد Devil-SDK-1.6.7\include\IL انسخ هذه الملفات il.h ilu.h ilut.h config.h il_wrap.h ilu_region.h devil_internal_exports.h واذهب الى مجلد الملفات الرأسية الخاص بمترجمك .. اذا كنت على الفيجوال سي / C:\Program Files\Microsoft Visual Studio\VC98\Include طبع على حسب موقع المترجم . الان انشأ ملف جديد داخل المجلد include وسمه IL ... الصق الملفات اللي نسختها قبل قليل .. في المجلد IL الان انتهى التثبيت .. بقي شيء واحد وهو ربط المكتبات بمترجمك .. اذا كنت تستخدم الفيجوال سي قبل ان تستدعي الملفات الرأسية اكتب : #   pragma comment (lib, "DevIL.lib")    #   pragma comment (lib, "ILU.lib")        #   pragma comment (lib, "ILUT.lib")       الملفات الرأسية اللي تستدعيها هي /   #include <IL/il.h>#include <IL/ilu.h>#include <IL/ilut.h>الان انتهى كل شيء :: الدرس القادم سنتعلم كيف نستورد صورة . اذهب لهذا الرابط وحمل الوثائق اذا احببت الاطلاع على الدوال + بعض التعليمات ..وملفات المساعدة . http://openil.sourceforge.net/docs/index.php اما السورس كود ... فلايهمنا كثير .. لكن اذا اردت : - http://umn.dl.sourceforge.net/sourceforge/...DevIL-1.6.7.zip