Our members are dedicated to PASSION and PURPOSE without drama!

[DEV] Actuals to Image v0.1

Started by VLS, January 27, 2013, 04:11:30 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

VLS

Development version.

Download: [attachmini=2]

[attachimg=1]

Usage is very simple:

Hit "Load file" then select a font.


3 new .JPG images get generated on the same directory as the actuals file.

Still open to color pairs for Even/Odd and Low/High.

Vic
Email/Paypal: betselectiongmail.com
-- Victor

VLS

Code (csharp) Select
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace ActualsToImage_0_1
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// Constructor
        /// </summary>
        public Form1()
        {
            InitializeComponent();
        }


        // List of int to hold numbers
        List<int> numbers = new List<int>();


        /// <summary>
        /// Load text file (then process it)
        /// </summary>
        private void bLoad_Click(object sender, EventArgs e)
        {
            // New stream
            Stream fStream = null;


            // New Open File Dialog
            OpenFileDialog ofdLoad = new OpenFileDialog();


            // Set Open File Dialog properties
            ofdLoad.InitialDirectory = Path.GetDirectoryName(Application.ExecutablePath); ;
            ofdLoad.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
            ofdLoad.FilterIndex = 1;
            ofdLoad.RestoreDirectory = true;


            // Show Open File Dialog
            if (ofdLoad.ShowDialog() == DialogResult.OK)
            {
                // A file was selected
                try
                {
                    // Open file
                    if ((fStream = ofdLoad.OpenFile()) != null)
                    {
                        // Process file
                        using (System.IO.StreamReader file = new System.IO.StreamReader(fStream))
                        {
                            // Declare line
                            string line;


                            // Declare number
                            int number;


                            // Clear numbers list
                            numbers.Clear();


                            // Read each line
                            while ((line = file.ReadLine()) != null)
                            {
                                // Set current number
                                number = Convert.ToInt32(line);


                                // Validate nubmer
                                if (number >= 0 && number <= 36)
                                {
                                    // Add to numbers list
                                    numbers.Add(number);
                                }
                            }
                        }


                        // Set base file name
                        string bfn = Path.GetDirectoryName(ofdLoad.FileName) + "\\" + Path.GetFileNameWithoutExtension(ofdLoad.FileName);


                        // Set default font
                        Font font = new Font("Arial", 18);


                        // Set font by dialog
                        if (cbFont.Checked)
                        {
                            // Show the dialog.
                            DialogResult result = fdFont.ShowDialog();


                            // See if OK was pressed.
                            if (result == DialogResult.OK)
                            {
                                // Get Font.
                                font = fdFont.Font;
                            }
                        }


                        /*
                         * Process each pair
                         */


                        // Handle 3 iterations
                        for (int p = 0; p < 3; ++p)
                        {
                            // Set pair variable
                            string pair = "";


                            // Red/Black
                            if (p == 0)
                            {
                                // Check state
                                if (!cbRB.Checked)
                                {
                                    // Halt iteration
                                    continue;
                                }


                                // Set pair
                                pair = "RB";
                            }


                            // Even/Odd
                            if (p == 1)
                            {
                                // Check state
                                if (!cbEO.Checked)
                                {
                                    // Halt iteration
                                    continue;
                                }


                                // Set pair
                                pair = "EO";
                            }


                            // Low/High
                            if (p == 2)
                            {
                                // Check state
                                if (!cbLH.Checked)
                                {
                                    // Halt iteration
                                    continue;
                                }


                                // Set pair
                                pair = "LH";
                            }


                            // Clear datagridview
                            dgvGen.DataSource = null;


                            //Customize output.
                            dgvGen.RowHeadersVisible = false;
                            dgvGen.ColumnHeadersVisible = false;
                            dgvGen.ScrollBars = ScrollBars.None;
                            dgvGen.AutoSize = true;
                            dgvGen.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
                            dgvGen.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;


                            //Set datasource.
                            dgvGen.DataSource = GetDataTable();


                            // Cell colorization
                            for (int r = 0; r < dgvGen.Rows.Count; ++r)
                            {
                                // Check number
                                for (int c = 0; c < Convert.ToInt32(nudCols.Value); ++c)
                                {
                                    if (c < dgvGen.Rows[r].Cells.Count && !(dgvGen.Rows[r].Cells[c].Value is DBNull))
                                    {
                                        // Formatting
                                        dgvGen.Rows[r].Cells[c].Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                                        dgvGen.Rows[r].Cells[c].Style.BackColor = getColorMulti(Convert.ToInt32(dgvGen.Rows[r].Cells[c].Value), pair);
                                        dgvGen.Rows[r].Cells[c].Style.ForeColor = Color.White;
                                        dgvGen.Rows[r].Cells[c].Style.Font = font;
                                    }
                                    else
                                    {
                                        // Break loops
                                        goto breaker;
                                    }
                                }
                            }


                            // Breaker label
                        breaker:


                            // Auto-resize
                            int i = 0;
                            foreach (DataGridViewColumn c in dgvGen.Columns)
                            {
                                i += c.Width;
                            }
                            dgvGen.Width = i + dgvGen.RowHeadersWidth;
                            dgvGen.Height = dgvGen.GetRowDisplayRectangle(dgvGen.NewRowIndex, true).Bottom + dgvGen.GetRowDisplayRectangle(dgvGen.NewRowIndex, false).Height;


                            // Bitmap
                            Bitmap bitmap = new Bitmap(dgvGen.Width, dgvGen.Height);
                            dgvGen.DrawToBitmap(bitmap, new Rectangle(Point.Empty, dgvGen.Size));
                            bitmap.Save(bfn + "-" + pair + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                            MemoryStream ms = new MemoryStream();
                            bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                            bitmap.Dispose();
                        }


                        // Messagebox
                        if (cbRB.Checked || cbEO.Checked || cbLH.Checked)
                        {
                            MessageBox.Show("Generated!", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.Message);
                }
            }
        }


        /// <summary>
        /// Helper method.
        /// </summary>
        DataTable GetDataTable()
        {
            // DataTable
            DataTable dt = new DataTable();


            // Index for numbers' list
            int index = 0;


            // Columns
            for (int i = 0; i < Convert.ToInt32(nudCols.Value); i++)
            {
                dt.Columns.Add(string.Format("Column{0}", i));
            }


            // Rows
            while (index < (numbers.Count - 1))
            {
                // String array to hold numbers
                string[] row = new string[dt.Columns.Count];


                // Prepare current row
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    // Check for EOL
                    if (index == (numbers.Count - 1))
                    {
                        // Truncate loop
                        break;
                    }


                    // Add to string array
                    row[i] = numbers[index].ToString();


                    // Rise index
                    index++;
                }


                // Add row
                dt.Rows.Add(row);
            }


            // Return DataTable
            return dt;
        }


        /// <summary>
        /// Cleanup code
        /// </summary>
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Open BetSelection.cc
            System.Diagnostics.Process.Start("http://betselection.cc");
        }




        /// <summary>
        /// Determines color of incoming number, acording to pair
        /// </summary>
        /// <param name="num">input number</param>
        /// <param name="pair">Any of: RB, EO, LH</param>
        /// <returns></returns>
        public Color getColorMulti(int num, string pair)
        {
            // Switch pairs
            switch (pair)
            {
                case "RB":
                    // Red-Black pair
                    switch (num)
                    {


                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 9:
                        case 12:
                        case 14:
                        case 16:
                        case 18:
                        case 19:
                        case 21:
                        case 23:
                        case 25:
                        case 27:
                        case 30:
                        case 32:
                        case 34:
                        case 36:


                            // Red number
                            return Color.Red;
                        case 2:
                        case 4:
                        case 6:
                        case 8:
                        case 10:
                        case 11:
                        case 13:
                        case 15:
                        case 17:
                        case 20:
                        case 22:
                        case 24:
                        case 26:
                        case 28:
                        case 29:
                        case 31:
                        case 33:
                        case 35:


                            // Black number
                            return Color.Black;
                        default:


                            // Anything else = green
                            return Color.Green;
                    }


                    break;


                case "EO":
                    // Even-Odd pair
                    switch (num)
                    {
                        case 2:
                        case 4:
                        case 6:
                        case 8:
                        case 10:
                        case 12:
                        case 14:
                        case 16:
                        case 18:
                        case 20:
                        case 22:
                        case 24:
                        case 26:
                        case 28:
                        case 30:
                        case 32:
                        case 34:
                        case 36:
                            // Even number
                            return Color.Blue;
                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 9:
                        case 11:
                        case 13:
                        case 15:
                        case 17:
                        case 19:
                        case 21:
                        case 23:
                        case 25:
                        case 27:
                        case 29:
                        case 31:
                        case 33:
                        case 35:
                            // Odd number
                            return Color.DarkMagenta ;
                        default:
                            // Anything else = green
                            return Color.Green;
                    }


                    break;


                case "LH":
                    // Low-High pair
                    if (num > 0 && num <= 18)
                    {
                        // Low
                        return Color.Orange;
                    }
                    else if (num <= 36 && num >= 19)
                    {
                        // High
                        return Color.Purple;
                    }
                    else
                    {
                        // Green
                        return Color.Green;
                    }
                    break;
            }


            // Codepaths
            return Color.White;


        }
    }
}

Email/Paypal: betselectiongmail.com
-- Victor

Albalaha

It is another good piece of work after implementing chat in the forum.  :applause:
Email: earnsumit@gmail.com - Visit my blog: http://albalaha.lefora.com
Can mentor a real, regular and serious player

TwoCatSam

At least I can download this and see what it is.  Darn sure can't see the picture!   :(
If dogs don't go to heaven, when I die I want to go where dogs go.   ...Will Rogers