Posts Tagged ‘C’

The software called “MarkMyImage” and it is a freeware.


Author says:

I wanted to watermark few sunset images taken by me, before posting it internet.

When I clicked checkboxes, froze the program. And I changed the source code on “frmMain.cs” so it works.
I commented out Reg. stuff, so that I did not want to use it.

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using Microsoft.Win32;

namespace WaterMark
{
        /// <summary>
        /// Summary description for frmMain.
        /// </summary>
        public class frmMain : System.Windows.Forms.Form
        {
                private System.Windows.Forms.StatusBar statusBar1;
                private System.Windows.Forms.StatusBarPanel statusBarPanel1;
                private System.Windows.Forms.StatusBarPanel statusBarPanel2;
                private System.Windows.Forms.GroupBox groupBox1;
                private System.Windows.Forms.Label label1;
                private System.Windows.Forms.Label label3;
                private System.Windows.Forms.CheckedListBox lstFileList;
                private System.Windows.Forms.TextBox txtWorkingFolder;
                private System.Windows.Forms.ComboBox cmbImageType;
                private System.Windows.Forms.PictureBox picSource;
                private System.Windows.Forms.GroupBox groupBox2;
                private System.Windows.Forms.Button cmdBrowse1;
                private System.Windows.Forms.Button cmdMake;
                private System.Windows.Forms.CheckBox chkPreview;
                private System.Windows.Forms.ProgressBar progressBar1;
                private System.Windows.Forms.Button cmdBrowse3;
                private System.Windows.Forms.TextBox txtOutputFolder;
                private System.Windows.Forms.CheckBox chkSameOutputFolder;
                private System.Windows.Forms.TextBox txtSuffix;
                private System.Windows.Forms.Label label2;
                private System.Windows.Forms.Label lblAbout;
                private System.Windows.Forms.Label label5;
                private System.Windows.Forms.Label label6;
                private System.Windows.Forms.LinkLabel linkLabel1;
                private System.Windows.Forms.LinkLabel linkLabel2;
                private System.Windows.Forms.LinkLabel linkLabel3;
                private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
                private System.Windows.Forms.OpenFileDialog openFileDialog1;
                //private const string RegKey = @"Software\Big Ds Tech\Mark My Image";
                //private string regInputFolder, regOutputFolder,regWaterMarkImage;
                private System.Windows.Forms.TabControl tabControl1;
                private System.Windows.Forms.PictureBox picWaterMark;
                private System.Windows.Forms.TextBox txtWaterMarkImage;
                private System.Windows.Forms.Button cmdBrowse2;
                private System.Windows.Forms.CheckBox chkWaterMarkImage;
                private System.Windows.Forms.Label label4;
                private System.Windows.Forms.TextBox txtCopyRight;
                private System.Windows.Forms.TabPage tabPage1;
                private System.Windows.Forms.TabPage tabPage2;
                private System.Windows.Forms.PropertyGrid propertyGrid1;
                private WMProperties pt;
                /// <summary>
                /// Required designer variable.
                /// </summary>
                private System.ComponentModel.Container components = null;

                public frmMain()
                {
                        //
                        // Required for Windows Form Designer support
                        //
                        InitializeComponent();

                        //
                        // TODO: Add any constructor code after InitializeComponent call
                        //
                }

                /// <summary>
                /// Clean up any resources being used.
                /// </summary>
                protected override void Dispose( bool disposing )
                {
                        if( disposing )
                        {
                                if (components != null)
                                {
                                        components.Dispose();
                                }
                        }
                        base.Dispose( disposing );
                }

                #region Windows Form Designer generated code
                /// <summary>
                /// Required method for Designer support - do not modify
                /// the contents of this method with the code editor.
                /// </summary>
                private void InitializeComponent()
                {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));
            this.statusBar1 = new System.Windows.Forms.StatusBar();
            this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
            this.statusBarPanel2 = new System.Windows.Forms.StatusBarPanel();
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.lstFileList = new System.Windows.Forms.CheckedListBox();
            this.groupBox2 = new System.Windows.Forms.GroupBox();
            this.tabControl1 = new System.Windows.Forms.TabControl();
            this.tabPage1 = new System.Windows.Forms.TabPage();
            this.txtWaterMarkImage = new System.Windows.Forms.TextBox();
            this.label4 = new System.Windows.Forms.Label();
            this.txtCopyRight = new System.Windows.Forms.TextBox();
            this.cmdBrowse2 = new System.Windows.Forms.Button();
            this.chkWaterMarkImage = new System.Windows.Forms.CheckBox();
            this.picWaterMark = new System.Windows.Forms.PictureBox();
            this.tabPage2 = new System.Windows.Forms.TabPage();
            this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
            this.cmbImageType = new System.Windows.Forms.ComboBox();
            this.label3 = new System.Windows.Forms.Label();
            this.cmdBrowse1 = new System.Windows.Forms.Button();
            this.txtWorkingFolder = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.chkPreview = new System.Windows.Forms.CheckBox();
            this.picSource = new System.Windows.Forms.PictureBox();
            this.cmdMake = new System.Windows.Forms.Button();
            this.progressBar1 = new System.Windows.Forms.ProgressBar();
            this.cmdBrowse3 = new System.Windows.Forms.Button();
            this.txtOutputFolder = new System.Windows.Forms.TextBox();
            this.chkSameOutputFolder = new System.Windows.Forms.CheckBox();
            this.txtSuffix = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.lblAbout = new System.Windows.Forms.Label();
            this.label5 = new System.Windows.Forms.Label();
            this.label6 = new System.Windows.Forms.Label();
            this.linkLabel1 = new System.Windows.Forms.LinkLabel();
            this.linkLabel2 = new System.Windows.Forms.LinkLabel();
            this.linkLabel3 = new System.Windows.Forms.LinkLabel();
            this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
            this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
            ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel2)).BeginInit();
            this.groupBox1.SuspendLayout();
            this.groupBox2.SuspendLayout();
            this.tabControl1.SuspendLayout();
            this.tabPage1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.picWaterMark)).BeginInit();
            this.tabPage2.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.picSource)).BeginInit();
            this.SuspendLayout();
            //
            // statusBar1
            //
            this.statusBar1.Location = new System.Drawing.Point(0, 464);
            this.statusBar1.Name = "statusBar1";
            this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
            this.statusBarPanel1,
            this.statusBarPanel2});
            this.statusBar1.ShowPanels = true;
            this.statusBar1.Size = new System.Drawing.Size(792, 18);
            this.statusBar1.TabIndex = 0;
            this.statusBar1.Text = "statusBar1";
            //
            // statusBarPanel1
            //
            this.statusBarPanel1.Name = "statusBarPanel1";
            this.statusBarPanel1.Text = "Ready";
            //
            // statusBarPanel2
            //
            this.statusBarPanel2.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
            this.statusBarPanel2.Name = "statusBarPanel2";
            this.statusBarPanel2.Width = 675;
            //
            // groupBox1
            //
            this.groupBox1.Controls.Add(this.lstFileList);
            this.groupBox1.Controls.Add(this.groupBox2);
            this.groupBox1.Controls.Add(this.cmbImageType);
            this.groupBox1.Controls.Add(this.label3);
            this.groupBox1.Controls.Add(this.cmdBrowse1);
            this.groupBox1.Controls.Add(this.txtWorkingFolder);
            this.groupBox1.Controls.Add(this.label1);
            this.groupBox1.Controls.Add(this.chkPreview);
            this.groupBox1.Location = new System.Drawing.Point(4, 2);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Size = new System.Drawing.Size(410, 458);
            this.groupBox1.TabIndex = 1;
            this.groupBox1.TabStop = false;
            //
            // lstFileList
            //
            this.lstFileList.Location = new System.Drawing.Point(8, 76);
            this.lstFileList.Name = "lstFileList";
            this.lstFileList.Size = new System.Drawing.Size(396, 169);
            this.lstFileList.TabIndex = 4;
            this.lstFileList.SelectedIndexChanged += new System.EventHandler(this.lstFileList_SelectedIndexChanged);
            //
            // groupBox2
            //
            this.groupBox2.Controls.Add(this.tabControl1);
            this.groupBox2.Location = new System.Drawing.Point(6, 252);
            this.groupBox2.Name = "groupBox2";
            this.groupBox2.Size = new System.Drawing.Size(400, 200);
            this.groupBox2.TabIndex = 11;
            this.groupBox2.TabStop = false;
            this.groupBox2.Text = "Water Mark";
            //
            // tabControl1
            //
            this.tabControl1.Controls.Add(this.tabPage1);
            this.tabControl1.Controls.Add(this.tabPage2);
            this.tabControl1.Location = new System.Drawing.Point(6, 16);
            this.tabControl1.Name = "tabControl1";
            this.tabControl1.SelectedIndex = 0;
            this.tabControl1.Size = new System.Drawing.Size(388, 178);
            this.tabControl1.TabIndex = 13;
            this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
            //
            // tabPage1
            //
            this.tabPage1.Controls.Add(this.txtWaterMarkImage);
            this.tabPage1.Controls.Add(this.label4);
            this.tabPage1.Controls.Add(this.txtCopyRight);
            this.tabPage1.Controls.Add(this.cmdBrowse2);
            this.tabPage1.Controls.Add(this.chkWaterMarkImage);
            this.tabPage1.Controls.Add(this.picWaterMark);
            this.tabPage1.Location = new System.Drawing.Point(4, 22);
            this.tabPage1.Name = "tabPage1";
            this.tabPage1.Size = new System.Drawing.Size(380, 152);
            this.tabPage1.TabIndex = 0;
            this.tabPage1.Text = "General";
            //
            // txtWaterMarkImage
            //
            this.txtWaterMarkImage.Enabled = false;
            this.txtWaterMarkImage.Location = new System.Drawing.Point(88, 68);
            this.txtWaterMarkImage.Name = "txtWaterMarkImage";
            this.txtWaterMarkImage.Size = new System.Drawing.Size(262, 20);
            this.txtWaterMarkImage.TabIndex = 7;
            //
            // label4
            //
            this.label4.Location = new System.Drawing.Point(2, 6);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(84, 14);
            this.label4.TabIndex = 12;
            this.label4.Text = "Text";
            //
            // txtCopyRight
            //
            this.txtCopyRight.Location = new System.Drawing.Point(88, 6);
            this.txtCopyRight.Multiline = true;
            this.txtCopyRight.Name = "txtCopyRight";
            this.txtCopyRight.Size = new System.Drawing.Size(288, 56);
            this.txtCopyRight.TabIndex = 5;
            this.txtCopyRight.Text = "Copyright © 2005 Big D";
            //
            // cmdBrowse2
            //
            this.cmdBrowse2.Enabled = false;
            this.cmdBrowse2.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
            this.cmdBrowse2.Location = new System.Drawing.Point(354, 68);
            this.cmdBrowse2.Name = "cmdBrowse2";
            this.cmdBrowse2.Size = new System.Drawing.Size(22, 20);
            this.cmdBrowse2.TabIndex = 8;
            this.cmdBrowse2.Text = "...";
            this.cmdBrowse2.Click += new System.EventHandler(this.cmdBrowse2_Click);
            //
            // chkWaterMarkImage
            //
            this.chkWaterMarkImage.Location = new System.Drawing.Point(2, 70);
            this.chkWaterMarkImage.Name = "chkWaterMarkImage";
            this.chkWaterMarkImage.Size = new System.Drawing.Size(84, 16);
            this.chkWaterMarkImage.TabIndex = 6;
            this.chkWaterMarkImage.Text = "Image";
            this.chkWaterMarkImage.CheckedChanged += new System.EventHandler(this.chkWaterMarkImage_CheckedChanged);
            //
            // picWaterMark
            //
            this.picWaterMark.Location = new System.Drawing.Point(88, 94);
            this.picWaterMark.Name = "picWaterMark";
            this.picWaterMark.Size = new System.Drawing.Size(290, 54);
            this.picWaterMark.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
            this.picWaterMark.TabIndex = 11;
            this.picWaterMark.TabStop = false;
            //
            // tabPage2
            //
            this.tabPage2.Controls.Add(this.propertyGrid1);
            this.tabPage2.Location = new System.Drawing.Point(4, 22);
            this.tabPage2.Name = "tabPage2";
            this.tabPage2.Size = new System.Drawing.Size(380, 152);
            this.tabPage2.TabIndex = 1;
            this.tabPage2.Text = "Properties";
            //
            // propertyGrid1
            //
            this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.propertyGrid1.HelpVisible = false;
            this.propertyGrid1.LineColor = System.Drawing.SystemColors.ScrollBar;
            this.propertyGrid1.Location = new System.Drawing.Point(0, 0);
            this.propertyGrid1.Name = "propertyGrid1";
            this.propertyGrid1.Size = new System.Drawing.Size(380, 152);
            this.propertyGrid1.TabIndex = 0;
            this.propertyGrid1.ToolbarVisible = false;
            //
            // cmbImageType
            //
            this.cmbImageType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cmbImageType.Items.AddRange(new object[] {
            "All Image Files",
            "JPEG Images (*.JPG, *.JPEG)",
            "Windows Bitmap Images (*.bmp)"});
            this.cmbImageType.Location = new System.Drawing.Point(104, 46);
            this.cmbImageType.Name = "cmbImageType";
            this.cmbImageType.Size = new System.Drawing.Size(176, 21);
            this.cmbImageType.TabIndex = 2;
            this.cmbImageType.SelectedIndexChanged += new System.EventHandler(this.cmbImageType_SelectedIndexChanged);
            //
            // label3
            //
            this.label3.Location = new System.Drawing.Point(10, 50);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(82, 14);
            this.label3.TabIndex = 6;
            this.label3.Text = "Image Type";
            //
            // cmdBrowse1
            //
            this.cmdBrowse1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
            this.cmdBrowse1.Location = new System.Drawing.Point(382, 20);
            this.cmdBrowse1.Name = "cmdBrowse1";
            this.cmdBrowse1.Size = new System.Drawing.Size(22, 20);
            this.cmdBrowse1.TabIndex = 1;
            this.cmdBrowse1.Text = "...";
            this.cmdBrowse1.Click += new System.EventHandler(this.cmdBrowse1_Click);
            //
            // txtWorkingFolder
            //
            this.txtWorkingFolder.Location = new System.Drawing.Point(104, 20);
            this.txtWorkingFolder.Name = "txtWorkingFolder";
            this.txtWorkingFolder.Size = new System.Drawing.Size(274, 20);
            this.txtWorkingFolder.TabIndex = 0;
            //
            // label1
            //
            this.label1.Location = new System.Drawing.Point(8, 24);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(94, 14);
            this.label1.TabIndex = 0;
            this.label1.Text = "Input Folder";
            //
            // chkPreview
            //
            this.chkPreview.Checked = true;
            this.chkPreview.CheckState = System.Windows.Forms.CheckState.Checked;
            this.chkPreview.Location = new System.Drawing.Point(284, 48);
            this.chkPreview.Name = "chkPreview";
            this.chkPreview.Size = new System.Drawing.Size(120, 20);
            this.chkPreview.TabIndex = 3;
            this.chkPreview.Text = "&Preview Image";
            this.chkPreview.CheckedChanged += new System.EventHandler(this.chkPreview_CheckedChanged);
            //
            // picSource
            //
            this.picSource.Location = new System.Drawing.Point(418, 6);
            this.picSource.Name = "picSource";
            this.picSource.Size = new System.Drawing.Size(370, 228);
            this.picSource.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
            this.picSource.TabIndex = 2;
            this.picSource.TabStop = false;
            //
            // cmdMake
            //
            this.cmdMake.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
            this.cmdMake.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.cmdMake.Location = new System.Drawing.Point(418, 326);
            this.cmdMake.Name = "cmdMake";
            this.cmdMake.Size = new System.Drawing.Size(370, 32);
            this.cmdMake.TabIndex = 12;
            this.cmdMake.Text = "&Make";
            this.cmdMake.Click += new System.EventHandler(this.cmdMake_Click);
            //
            // progressBar1
            //
            this.progressBar1.Location = new System.Drawing.Point(416, 238);
            this.progressBar1.Name = "progressBar1";
            this.progressBar1.Size = new System.Drawing.Size(372, 22);
            this.progressBar1.TabIndex = 14;
            //
            // cmdBrowse3
            //
            this.cmdBrowse3.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
            this.cmdBrowse3.Location = new System.Drawing.Point(764, 296);
            this.cmdBrowse3.Name = "cmdBrowse3";
            this.cmdBrowse3.Size = new System.Drawing.Size(22, 20);
            this.cmdBrowse3.TabIndex = 11;
            this.cmdBrowse3.Text = "...";
            this.cmdBrowse3.Click += new System.EventHandler(this.cmdBrowse3_Click);
            //
            // txtOutputFolder
            //
            this.txtOutputFolder.Location = new System.Drawing.Point(418, 296);
            this.txtOutputFolder.Name = "txtOutputFolder";
            this.txtOutputFolder.Size = new System.Drawing.Size(342, 20);
            this.txtOutputFolder.TabIndex = 10;
            //
            // chkSameOutputFolder
            //
            this.chkSameOutputFolder.BackColor = System.Drawing.SystemColors.Control;
            this.chkSameOutputFolder.Checked = true;
            this.chkSameOutputFolder.CheckState = System.Windows.Forms.CheckState.Checked;
            this.chkSameOutputFolder.Location = new System.Drawing.Point(420, 270);
            this.chkSameOutputFolder.Name = "chkSameOutputFolder";
            this.chkSameOutputFolder.Size = new System.Drawing.Size(242, 18);
            this.chkSameOutputFolder.TabIndex = 9;
            this.chkSameOutputFolder.Text = "Use &output folder as same add suffix";
            this.chkSameOutputFolder.UseVisualStyleBackColor = false;
            this.chkSameOutputFolder.CheckedChanged += new System.EventHandler(this.chkSameOutputFolder_CheckedChanged);
            //
            // txtSuffix
            //
            this.txtSuffix.Location = new System.Drawing.Point(620, 267);
            this.txtSuffix.MaxLength = 15;
            this.txtSuffix.Name = "txtSuffix";
            this.txtSuffix.Size = new System.Drawing.Size(50, 20);
            this.txtSuffix.TabIndex = 19;
            this.txtSuffix.Text = "_final";
            //
            // label2
            //
            this.label2.Location = new System.Drawing.Point(676, 271);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(82, 16);
            this.label2.TabIndex = 20;
            this.label2.Text = "after file names";
            //
            // lblAbout
            //
            this.lblAbout.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
            this.lblAbout.Location = new System.Drawing.Point(416, 364);
            this.lblAbout.Name = "lblAbout";
            this.lblAbout.Size = new System.Drawing.Size(372, 96);
            this.lblAbout.TabIndex = 21;
            this.lblAbout.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            //
            // label5
            //
            this.label5.Location = new System.Drawing.Point(420, 382);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(368, 14);
            this.label5.TabIndex = 22;
            this.label5.Text = "Developed by Deb\'jyoti Das";
            this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            //
            // label6
            //
            this.label6.Location = new System.Drawing.Point(420, 422);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(356, 14);
            this.label6.TabIndex = 23;
            this.label6.Text = "Main credit goes to Joel Neubeck\'s this Code Project article ";
            this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            //
            // linkLabel1
            //
            this.linkLabel1.Location = new System.Drawing.Point(588, 400);
            this.linkLabel1.Name = "linkLabel1";
            this.linkLabel1.Size = new System.Drawing.Size(182, 18);
            this.linkLabel1.TabIndex = 24;
            this.linkLabel1.TabStop = true;
            this.linkLabel1.Text = "http://b.domaindlx.com/bigd";
            this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
            //
            // linkLabel2
            //
            this.linkLabel2.Location = new System.Drawing.Point(446, 400);
            this.linkLabel2.Name = "linkLabel2";
            this.linkLabel2.Size = new System.Drawing.Size(146, 18);
            this.linkLabel2.TabIndex = 25;
            this.linkLabel2.TabStop = true;
            this.linkLabel2.Text = "invincible.bigd@gmail.com";
            this.linkLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked);
            //
            // linkLabel3
            //
            this.linkLabel3.Location = new System.Drawing.Point(624, 422);
            this.linkLabel3.Name = "linkLabel3";
            this.linkLabel3.Size = new System.Drawing.Size(22, 14);
            this.linkLabel3.TabIndex = 26;
            this.linkLabel3.TabStop = true;
            this.linkLabel3.Text = "this";
            this.linkLabel3.TextAlign = System.Drawing.ContentAlignment.TopCenter;
            this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked);
            //
            // frmMain
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(792, 482);
            this.Controls.Add(this.linkLabel3);
            this.Controls.Add(this.linkLabel2);
            this.Controls.Add(this.linkLabel1);
            this.Controls.Add(this.label6);
            this.Controls.Add(this.label5);
            this.Controls.Add(this.lblAbout);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.txtSuffix);
            this.Controls.Add(this.chkSameOutputFolder);
            this.Controls.Add(this.txtOutputFolder);
            this.Controls.Add(this.cmdBrowse3);
            this.Controls.Add(this.progressBar1);
            this.Controls.Add(this.picSource);
            this.Controls.Add(this.groupBox1);
            this.Controls.Add(this.statusBar1);
            this.Controls.Add(this.cmdMake);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.MaximizeBox = false;
            this.Name = "frmMain";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "Mark My Image";
            this.Load += new System.EventHandler(this.frmMain_Load);
            this.Closed += new System.EventHandler(this.frmMain_Closed);
            ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel2)).EndInit();
            this.groupBox1.ResumeLayout(false);
            this.groupBox1.PerformLayout();
            this.groupBox2.ResumeLayout(false);
            this.tabControl1.ResumeLayout(false);
            this.tabPage1.ResumeLayout(false);
            this.tabPage1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)(this.picWaterMark)).EndInit();
            this.tabPage2.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.picSource)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();

                }
                #endregion

                /// <summary>
                /// The main entry point for the application.
                /// </summary>
                [STAThread]
                static void Main()
                {
                        Application.Run(new frmMain());
                }

                private void frmMain_Load(object sender, System.EventArgs e)
                {
                        pt = new WMProperties();
                        //GetFromRegistry();
                        //txtWorkingFolder.Text = regInputFolder;
                        //txtWaterMarkImage.Text = regWaterMarkImage;
                        chkWaterMarkImage.Checked = false;
                        cmbImageType.SelectedIndex = 0;
                        //txtOutputFolder.Text = regOutputFolder;
                        txtOutputFolder.Enabled = false;
                        cmdBrowse3.Enabled = false;

                        setWMProperties();
                        //pt.TextPosition = ContentAlignment.BottomCenter;
                        //pt.ImagePosition = ContentAlignment.TopRight;
                        //pt.Font = new Font("arial",(float)8.25);
                        //pt.FontSizeBestFit = true;
                        //lblAbout.Text = ";
                        pt.setDefaultValues();

                        GetFiles();

                        if(chkPreview.Checked == true && lstFileList.Items.Count > 0)
                        {
                                lstFileList.SelectedIndex = 0;
                                if (File.Exists(lstFileList.Items[0].ToString()))
                                        picSource.Image = Image.FromFile(lstFileList.Items[0].ToString());
                        }

                }

                private void GetFiles()
                {
                        string [] temp1 = null,temp2 = null,temp3 = null,fileEntries = null;
                        int tot_files = 0;

                        try
                        {
                                switch(cmbImageType.SelectedIndex)
                                {
                                        case 0:
                                                temp1 = Directory.GetFiles(txtWorkingFolder.Text,"*.jpg");
                                                temp2 = Directory.GetFiles(txtWorkingFolder.Text,"*.jpeg");
                                                temp3 = Directory.GetFiles(txtWorkingFolder.Text,"*.bmp");
                                                tot_files = temp1.Length + temp2.Length + temp3.Length;
                                                fileEntries = new string[tot_files];
                                                Array.Copy(temp1,0,fileEntries,0,temp1.Length);
                                                Array.Copy(temp2,0,fileEntries,temp1.Length,temp2.Length);
                                                Array.Copy(temp3,0,fileEntries,temp1.Length + temp2.Length,temp3.Length);
                                                break;
                                        case 1:
                                                temp1 = Directory.GetFiles(txtWorkingFolder.Text,"*.jpg");
                                                temp2 = Directory.GetFiles(txtWorkingFolder.Text,"*.jpeg");
                                                tot_files = temp1.Length + temp2.Length;
                                                fileEntries = new string[tot_files];
                                                Array.Copy(temp1,0,fileEntries,0,temp1.Length);
                                                Array.Copy(temp2,0,fileEntries,fileEntries.Length,temp2.Length);
                                                break;
                                        case 2:
                                                fileEntries = Directory.GetFiles(txtWorkingFolder.Text,"*.bmp");
                                                tot_files = fileEntries.Length;
                                                break;

                                }

                                progressBar1.Maximum = tot_files;
                                lstFileList.Items.Clear();

                                foreach(string fileName in fileEntries)
                                {
                                        if (fileName != null)
                                                lstFileList.Items.Add(fileName.Replace(AppDomain.CurrentDomain.BaseDirectory,@".\"),CheckState.Checked);
                                }

                                statusBarPanel2.Text = lstFileList.Items.Count + " File(s)" ;

                                //We will add the preview item..
                                //lstPreview.Items.Add("Preview using current Watermark settings");

                        }
                        catch{}

                }

                private void cmdBrowse1_Click(object sender, System.EventArgs e)
                {
                        string oldWorkingFolder;
                        try
                        {
                                if(txtWorkingFolder.Text.Substring(0,1) == ".")
                                        oldWorkingFolder = txtWorkingFolder.Text.Replace(".",AppDomain.CurrentDomain.BaseDirectory.Substring(0,AppDomain.CurrentDomain.BaseDirectory.Length - 1));
                                else
                                        oldWorkingFolder = txtWorkingFolder.Text;

                                folderBrowserDialog1.SelectedPath = oldWorkingFolder;
                                //folderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.Personal;
                        }
                        catch{}
                        try
                        {
                                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                                {
                                        txtWorkingFolder.Text = folderBrowserDialog1.SelectedPath;
                                        if (chkSameOutputFolder.Checked == true)
                                        {
                                                txtOutputFolder.Text = txtWorkingFolder.Text;
                                        }
                                        GetFiles();
                                }
                        }
                        catch{}
                }

                private void chkWaterMarkImage_CheckedChanged(object sender, System.EventArgs e)
                {
                        //if(chkWaterMarkImage.Checked == true && txtWaterMarkImage.Text != "")
            if (chkWaterMarkImage.Checked == true)
                        {
                                txtWaterMarkImage.Enabled = true;
                                cmdBrowse2.Enabled = true;
                                string fileName;

                if (txtWaterMarkImage.Text != "")
                {
                    if(txtWaterMarkImage.Text.Substring(0,1) == ".")
                                            fileName = AppDomain.CurrentDomain.BaseDirectory + txtWaterMarkImage.Text.Substring(2);
                                    else
                                            fileName = txtWaterMarkImage.Text;

                                    if(File.Exists(fileName))
                                    {
                                            picWaterMark.Image = Image.FromFile(fileName);
                                    }
                }

                        }
                        else
                        {
                                txtWaterMarkImage.Enabled = false;
                                cmdBrowse2.Enabled = false;
                                picWaterMark.Image = null;
                                pt.CopyrightImage = null;
                        }
                }

                private void lstFileList_SelectedIndexChanged(object sender, System.EventArgs e)
                {

                        string filename= txtWorkingFolder.Text + lstFileList.SelectedItem.ToString().Substring(lstFileList.SelectedItem.ToString().LastIndexOf("\\"));

                        if(chkPreview.Checked == true && File.Exists(filename))
                        {
                                picSource.Image = Image.FromFile(filename);
                        }
                }

                private void cmdMake_Click(object sender, System.EventArgs e)
                {

                        if ( chkSameOutputFolder.Checked == false && txtWorkingFolder.Text.Equals(txtOutputFolder.Text))
                        {
                                MessageBox.Show("Output folder can not be same as input folder",this.Text,MessageBoxButtons.OK,MessageBoxIcon.Error);
                                return;
                        }
                        try
                        {
                                this.Cursor = Cursors.WaitCursor;
                                statusBarPanel1.Text = "Busy";
                                Application.DoEvents();
                                WaterMark wm;
                                string srcPic,dstPic;

                                if (chkWaterMarkImage.Checked == true)
                                        wm = new WaterMark(txtWorkingFolder.Text,txtCopyRight.Text,pt.TextPosition,pt.Font,picWaterMark.Image,pt.ImagePosition);
                                else
                                        wm = new WaterMark(txtWorkingFolder.Text,txtCopyRight.Text,pt.TextPosition,pt.Font);

                                for(int i=0;i<lstFileList.CheckedItems.Count;i++)
                                {
                                        //srcPic = txtWorkingFolder.Text + lstFileList.Items[i].ToString().Substring(1);
                                        srcPic = txtWorkingFolder.Text + lstFileList.Items[i].ToString().Substring(lstFileList.Items[i].ToString().LastIndexOf("\\"));
                                        if (chkSameOutputFolder.Checked == true)
                                                dstPic = srcPic.Insert(srcPic.LastIndexOf("."),txtSuffix.Text);
                                        else
                                                dstPic = txtOutputFolder.Text + "\\" + srcPic.Substring(srcPic.LastIndexOf("\\") + 1);

                                        wm.MarkImage(srcPic,dstPic);
                                        progressBar1.Increment(1);
                                        statusBarPanel2.Text = "Proecessing Image " + srcPic.Substring(lstFileList.Items[i].ToString().LastIndexOf("\\") + 1);
                                        Application.DoEvents();
                                }
                                progressBar1.Value = 0;
                                statusBarPanel1.Text = "Ready";
                                statusBarPanel2.Text = "";
                                this.Cursor = Cursors.Default;
                                Application.DoEvents();
                        }
                        catch(Exception ex)
                        {
                                progressBar1.Value = 0;
                                statusBarPanel1.Text = "Ready";
                                statusBarPanel2.Text = ex.Message;
                                this.Cursor = Cursors.Default;
                                Application.DoEvents();
                        }

                }

                private void chkSameOutputFolder_CheckedChanged(object sender, System.EventArgs e)
                {
                        if (chkSameOutputFolder.Checked == true)
                        {
                                chkSameOutputFolder.Text = "Use &output folder as same add suffix";
                                chkSameOutputFolder.Width = 306;
                                chkSameOutputFolder.SendToBack();

                                txtOutputFolder.Text = txtWorkingFolder.Text;
                                txtOutputFolder.Enabled = false;
                                cmdBrowse3.Enabled = false;
                                txtSuffix.Visible = true;
                        }
                        else
                        {
                                chkSameOutputFolder.Text = "Use following &output folder and keep same file name(s)";
                                chkSameOutputFolder.Width = cmdMake.Width;
                                chkSameOutputFolder.BringToFront();

                                //txtOutputFolder.Text = regOutputFolder;
                                txtOutputFolder.Enabled = true;
                                cmdBrowse3.Enabled = true;
                                txtSuffix.Visible = false;
                        }
                }

                private void linkLabel2_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
                {
                        System.Diagnostics.Process.Start("mailto:" + linkLabel2.Text + "?subject=MarkMyImage@Codeproject.com");
                }

                private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
                {
                        System.Diagnostics.Process.Start(linkLabel1.Text);
                }

                private void linkLabel3_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
                {
                        System.Diagnostics.Process.Start("http://www.codeproject.com/csharp/watermark.asp");
                }

                private void chkPreview_CheckedChanged(object sender, System.EventArgs e)
                {
                        try
                        {
                                if (chkPreview.Checked == false)
                                        picSource.Image = null;
                                else
                                        picSource.Image = Image.FromFile(txtWorkingFolder.Text + lstFileList.SelectedItem.ToString().Substring(1));
                        }
                        catch{}
                }

                private void cmbImageType_SelectedIndexChanged(object sender, System.EventArgs e)
                {
                        GetFiles();
                }

                private void cmdBrowse3_Click(object sender, System.EventArgs e)
                {
                        string oldInputFolder;
                        try
                        {
                                if(txtOutputFolder.Text.Substring(0,1) == ".")
                                        oldInputFolder = txtOutputFolder.Text.Replace(".",AppDomain.CurrentDomain.BaseDirectory.Substring(0,AppDomain.CurrentDomain.BaseDirectory.Length - 1));
                                else
                                        oldInputFolder = txtOutputFolder.Text;
                                folderBrowserDialog1.SelectedPath = oldInputFolder;
                                //folderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.Personal;
                        }
                        catch{}
                        try
                        {
                                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                                {
                                        if (txtWorkingFolder.Text == folderBrowserDialog1.SelectedPath)
                                                MessageBox.Show("Input and output folder can not be same",this.Text,MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
                                        else
                                                txtOutputFolder.Text = folderBrowserDialog1.SelectedPath;
                                }
                        }
                        catch{}
                }
        /*
                private void SaveToRegistry()
                {
                        RegistryKey myKey = Registry.CurrentUser.CreateSubKey(RegKey);
                        myKey.SetValue("InputFolder",txtWorkingFolder.Text);
                        myKey.SetValue("OutputFolder",txtOutputFolder.Text);
                        myKey.SetValue("WaterMarkImage",txtWaterMarkImage.Text);
                }
                private void GetFromRegistry()
                {
                        try
                        {
                                RegistryKey mykey = Registry.CurrentUser.OpenSubKey(RegKey);
                                regInputFolder = mykey.GetValue("InputFolder").ToString();
                                regOutputFolder = mykey.GetValue("OutputFolder").ToString();
                                regWaterMarkImage = mykey.GetValue("WaterMarkImage").ToString();
                        }
                        catch
                        {
                                MessageBox.Show(this.Text + " is not installed properly, or it corrupt. Please re-install and try again.",this.Text,MessageBoxButtons.OK,MessageBoxIcon.Stop);
                                Application.Exit();
                        }
                }
        */
                private void frmMain_Closed(object sender, System.EventArgs e)
                {
                        //SaveToRegistry();
                }

                private void cmdBrowse2_Click(object sender, System.EventArgs e)
                {
                        openFileDialog1.Filter = "All Picture Files|*.jpg;*.bmp|JPEG(*.JPEG,*JPG)|*.jpg;*.jpeg|Bitmap Files(*.BMP)|*.bmp|All Files|*.*";
                        if (openFileDialog1.ShowDialog() == DialogResult.OK)
                        {
                                txtWaterMarkImage.Text = openFileDialog1.FileName;
                                picWaterMark.Image = Image.FromFile(txtWaterMarkImage.Text);
                        }

                }

                private void setWMProperties()
                {
                        pt.CopyrightText = txtCopyRight.Text;

                        if (chkWaterMarkImage.Checked == true)
                        {
                                pt.CopyrightImage = picWaterMark.Image ;
                        }
                        propertyGrid1.SelectedObject = pt;
                }

                private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e)
                {
                        if (tabControl1.SelectedIndex == 1) setWMProperties();
                }
        }
}

You will find his homepage here (http://b.domaindlx.com/bigd)

People want something to happen. And me too.
So I made the MP3 player. And it really can play MP3.
With the “MediaElement”, you can play video files too.

mp3_test.jpg (17 KB)

“MainPage.xaml” looks like this.

<UserControl x:Class="MP3MediaTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Grid x:Name="LayoutRoot">
        <StackPanel>
            <MediaElement AutoPlay="False" x:Name="myMP3" Source="Etudo.mp3" />
            <TextBlock FontSize="20" x:Name="myStatus" />
            <StackPanel Orientation="Horizontal">
                <Button x:Name="myPlayButton" Width="100" Content="Play" Click="OnPlay" />
                <Button x:Name="myPauseButton" Width="100" Content="Pause" Click="OnPause" />
                <Button x:Name="myStopButton" Width="100" Content="Stop" Click="OnStop" />
            </StackPanel>
        </StackPanel>
    </Grid>
</UserControl>

And “MainPage.xaml.cs” looks like this.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace MP3MediaTest
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            this.myMP3.CurrentStateChanged += new RoutedEventHandler(OnCurrentStateChanged);
        }

        void OnCurrentStateChanged(object sender, RoutedEventArgs e)
        {
            bool isPlaying = (this.myMP3.CurrentState == MediaElementState.Playing);
            this.myPauseButton.IsEnabled = isPlaying && this.myMP3.CanPause;
            this.myPlayButton.IsEnabled = !isPlaying;
            this.myStatus.Text = this.myMP3.CurrentState.ToString() + " - " + this.myMP3.Source.ToString();
        }

        private void OnPlay(object sender, RoutedEventArgs e)
        {
            this.myMP3.Play();
        }

        private void OnPause(object sender, RoutedEventArgs e)
        {
            this.myMP3.Pause();
        }

        private void OnStop(object sender, RoutedEventArgs e)
        {
            this.myMP3.Stop();
        }
    }
}

As I wrote, it did not work at first.
I then changed it this and that … and now it works. I’ll explain how to do.

My system is as follows:
Vista x64
Visual Studio 2008

If you have trouble using the “IEvolution” with windows 7 x64, you should try this too.

  1. You must copy the “iecore.dll” to the Window\System
    (NOT sysWOW64, Nor System32)
  2. In Visual Studio, “Tools -> Choose Toolbox Items” and on “. NET Framework Components” tab, browse “IEvolution2.dll”.
    (You can do the same with right-click the Toolbox and select “Choose items …”)
  3. When you open the Demo Project, you must add “references” to IEvolution, and then right-click the project name and select “Properties”, then “Build” tab.
    You must change the “Platform Target – Any CPU” to “x86 “.

vs_ievolution.jpg (123 KB)

That’s it!

When you create your own project, you need to make it No.3.

Now everything works!

This way, you can work with the latest version of IEvolution3.12.

IEvolution is freeware and you can download it from the following URI:
HiComponents

weather.jpg (24 KB)

In addition to the game, I read “Microsoft Visual C# 2008 Express Edition: Build a Program Now!“, and made this program (see above).
This book is for beginners, and I am a beginner on C#.
It is a good book. I recommend this book for anyone who wants to start C#. Not a lot of theories but lots of code. Quite fun to program. I have Visual Studio, but it was made for the Express edition to compile the example.

This is the final chapter “Weather Tracker”, and it can retrieve weather from MSN. It feels a bit buggy but it works!
I could not display the splash screen in the beginning. I read many times if I missed something, but did not. So I looked at included source code. And “Ha ha!”. It lacked something, of course.
splashScreen.Show();
Oh, yes! This is very important! You should set Main.cs design properties “ShowInTaskbar” – “False”.
Some “namespaces” also have to add yourself. In the last chapter you will suddenly pop up to higher ground – so I felt.

I did a little extra with that program.
If you have the book, and you want users to be able to use pop-up menu from the Main form, just change its properties “ContextMenuStrip” – “None” to “cmsNotify”.

Good luck!

ttf2bmp.jpg (44 KB)

I wanted to make a small game with C# because I got a book, and was looking for a program that could convert the font to BMP or something like that.
I found both shareware and freeware on the Internet, and I was not happy with them. Especially shareware. I did not want to pay for just that. I thought almost do it myself, but I happened to find a good one. Actually on Microsoft’s website. Even better, it’s free. Moreover, with source code in C#. Source is slightly older and you have to convert them but it went well for me.

The text below is from the included HTML file with the source code.

This utility converts Windows TrueType fonts into .bmp files that can be imported using the XNA Framework Content Pipeline, and converted into SpriteFont objects by BitmapFontProcessor.
Overview

When you add a new font description to an XNA Framework project, this creates an XML description file describing what font you want to use. The Content Pipeline reads this description, renders out the appropriate characters using the Windows Font API, and converts them into a format that can be efficiently rendered using the SpriteFont class.

You may find “ttf2bmp.exe” on the web, but I would say that it is only the source code. Anyway what I found on Microsoft’s website.
Sorry I forgot the address. Go to the http://www.microsoft.com/express/ and look for ttf2bmp.exe.

These pictures are from Windows 7. Look at “System Tray”.
I must say that it works “MyScreenCapture” in Windows 7 that you see.

Memo_C.jpg (99 KB) Memo_php.jpg (132 KB)

Finally!
In short, a new version of MEMO has been released today (It was longer?).
Read the rest of this entry »

I got it now!
“Now?”, you say.
It seems to be available Visual Studio 2010 soon, but I’ve finally got 2008. So I tested Visual C#.

VStudio2008_Hello.jpg (165 KB)

And it works!

VStudio2008_Hello_Run.jpg (135 KB)

Memo is an advanced plain text editor for common programming languages. I made this program, because I want to modify some code in Delphi, Cpp or C (can be anything else). Using a program like CppBuilder is OK, but those programs are very heavy and not handy – of course it is working so slow. I do not want to launch a big program for modifying some part of the source code. I wanted a simple – and handy program for viewing, checking and modifying some codes. And now, you can compile your source file with MEMO.

Memo - Main

Features

With Memo, the users are able to:

  • load and modify common programing code
  • syntax highlighting for common programming languages such as Pascal, Cpp, PHP, Perl, Python
  • use spell checker
  • pick up C++ templates (C++Builder like templates) and Object Pascal templates (Delphi like templates) – Press Ctrl + J to get these stuff
  • Cut/Copy/Paste operations
  • drag and drop
  • unlimitted Undo / Redo (depends on your computer memory)
  • convert characters (lowercase to uppercase or uppercase to lowercase)
  • save selected block as a file
  • insert a plain file into the chosen point
  • select block (colum mode)
  • read and save PC, Unix and Mac file formats (default is PC format)
  • easy access prompt
  • compile and see compiler output

and several more..

Read more..