Anda di halaman 1dari 60

1

1.INTRODUCTION
1a.History The term "digital watermark" was first coined in 1992 by Andrew Tirkel and Charles Osborne. Watermarks are identification marks produced during the paper making process. The first watermarks appeared in Italy during the 13th century, but their use rapidly spread across Europe. They were used as a means to identify the papermaker or the trade guild that manufactured the paper. The marks shown here were created by a wire sewn onto the paper mold. Watermarks continue to be used today as manufacturer's marks and to prevent forgery. 1b.Applications Digital watermarking may be used for a wide range of applications, such as:

Copyright protection Source tracking (different recipients get differently watermarked content) Broadcast monitoring (television news often contains watermarked video from international agencies)

1c.Digital watermarking life-cycle phases

Fig. no 1.1: Digital watermarking Life Cycle phase. Digital watermarking is a process for modifying physical or electronic media to embed a machine-readable code into the media. The media may be modified such that the embedded code is imperceptible or nearly imperceptible to the user, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media signals such as images, audio signals, and video signals. However, it may also be applied to other types of media objects, including documents (e.g., through line, word or character shifting), software, multi-dimensional graphics models, and surface textures of objects.

One particular problem in digital watermarking applications is synchronizing a detector to deal with geometric warping distortion of a watermarked image. A number of techniques have been developed for dealing with geometric distortion in watermarked images. One technique is to make the watermark more robust to geometric distortion by embedding it in attributes of the image that are relatively invariant to geometric distortion. Cases, it typically does not address all forms of geometric distortion and more complex, non-linear geometric distortion. Another technique is to include geometric calibration features in the watermark signal that enable detection and estimation of the geometric distortion parameters, such as rotation and scale. These features include, for example, calibration signal peaks in a particular transform domain, such as the autocorrelation domain and/or Fourier domain Such techniques do not provide error free estimation of geometric distortion. In some cases, errors result from estimation, even where the geometric distortion is linear. In addition, affine transform parameters can only approximate geometric distortion that is non-linear. For example, it can provide a piecewise linear estimate of affine distortion in sub-blocks of an image, but it cannot always accurately represent non-linear distortion in a manner that leads to error free recovery of the digital watermark message. Steganography studies the encoding and the detection of secret message transmitted over digital communication platform.steganography method hide the presence of an arbitrary digital message by encoding it in to digital media. Digital watermarking mainly focuses on protection of intellectual property rights and authentication of digital media it is Similar to hide information of digital media it provide new way of ensuring the adequate protection of copyrights holders in intellectual property distribution process. Digital watermarking systems typically have two primary components: an encoder that embeds the watermark in a host media signal, and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (a suspect signal). The encoder embeds a watermark by altering the host media signal. The reading component analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information, the reader extracts this information from the detected watermark.

1.1. LITERATURE SURVEY LITERATURE SURVEY ON DIGITAL IMAGE WATERMARKING Er-Hsien Fu EE381K-Multidimensional Signal Processing 8/19/08 This paper conducts a literature survey of digital watermarks used for images. It describes the previous work done on digital watermarks, including the analysis of various watermarking schemes and their results. Potential applications are discussed, and an implementation plan of the project is presented. 1.1a .THE DIGITAL WATERMARKA BRIEF DESCRIPTION In general, a digital watermark is a code that is embedded inside an image. It acts as a digital signature, giving the image a sense of ownership or authenticity. Ideal properties of a digital watermark have been stated in many articles and papers [1-3]. These properties include: 1) A digital watermark should be perceptually invisible to prevent obstruction of the original image. 2) A digital watermark should be statistically invisible so it cannot be detected or erased. 3) Watermark extraction should be fairly simple. Otherwise, the detection process requires too much time or computation. 4) Watermark detection should be accurate. False positives, the detection of a non marked image, and false negatives, the non-detection of a marked image, should be few. 5) Numerous watermarks can be produced. Otherwise, only a limited number of images may be marked. 6) Watermarks should be robust to filtering, additive noise, compression, and other forms of image manipulation. 7) The watermark should be able to determine the true owner of the image.

Figure 1.2 shows a general watermarking scheme. For transmission, the watermark W is generated as a pseudo-random sequence to ensure statistical invisibility. Signal information, such as DCT coefficients, are extracted from the original image I and embedded into the information. The watermarked image I is formed with no visible differences between I and I. For watermark

detection, a suspected image J is taken and its signal information is obtained. A suspected watermark V is extracted based on knowledge of the original image I and the watermark W. A similarity measure S is performed on V and W. Popular measures include the cross-correlation and correlation coefficient. Finally, S is compared to a threshold . If S is larger than the threshold, then the watermark W is detected. Otherwise, no watermark is detected. 1.1b. WATERMARKING TECHNIQUES Many watermarking methods have been proposed in the literature. Schyndel,Tirkel, and Osborne [4] generated a watermark using a m-sequence generator. The watermark was either embedded or added to the least significant bit of the original image to produce the watermarked image. The watermark was extracted from a suspected image by taking the least significant bits at the proper locations. Detection was performed by a cross-correlation of the original and extracted watermark. Schyndel et al.showed that the resulting image contained an invisible watermark with simple extraction procedures. The watermark, however, was not robust to additive noise. Cox et al. [1] noted that in order for a watermark to be robust to attack, it must be placed in perceptually significant areas of the image. The watermark was based on 1000random samples of a N(0,1) distribution. These samples were added to the 1000 largestDCT coefficients of the original image, and the inverse DCT was taken to retrieve the Watermarked image. For detection, the watermark was extracted from the DCT of a suspected image.

Fig. No 1.2: Watermark Technique

Extraction was based on knowledge of the original signal and the exact frequency locations of the watermark. The correlation coefficient was computed and set to a threshold. If the correlation was large enough, the watermark was detected. Their method was robust to image scaling, JPEG coding, dithering, cropping, and rescanning.Xia, Boncelet, and Arce [5] introduced a watermarking system using fractal codes. A collage map was composed from 8x8 blocks of the original image and from the images DCT. The watermark was added to the collage map to produce a marked image. Results showed that fractal coding in the DCT domain performed better than coding in the spatial domain. The DCT-based watermarking technique was robust to JPEGcompression, while spatial fractal coding produced block artifacts after compression. 1.1c.APPLICATIONS Many potential applications exist for digital watermarking. Artists and photographers could mark their images to secure ownership rights. Publishing companies who commercially distribute their images could watermark them to prevent unauthorized distribution. Dig marc Corporation already has a software package that searches the Internet for web pages containing specific watermarks. Watermarking could also apply to other multimedia data such as audio and video. Compact disks and digital video disks are extremely susceptible to bootlegging via the internet. Digital watermarks might take part in diminishing this potential underground market 1.1d.PROJECT IMPLEMENTATION PLANS Since a watermark is merely a sequence of pseudo-random numbers, error free detection may be possible by using linear block codes. With the exception of [11] most watermarking schemes do not employ error-correction. My project will attempt to implement a new watermarking method using error-correction techniques. Furthermore, this project seeks to determine if the error-correcting watermark scheme will hold any advantages over traditional watermarking methods. 1.1e.CONCLUSION A large variety of watermarking techniques is currently available in the literature. Recent work has shown that digital watermarks can be fairly successful in achieving the desired properties .These watermarks, however, are not perfect, and more could be done to improve a watermarks robustness or accuracy in detection. Furthermore, the question of copyright infringement remains a legal issue.

2. SYSTEM ANALYSIS
2.1 EXISTING SYSTEM: The existing system they are used single watermarking concept. In this concept overwriting applied only one time. So, it has some low security. Problems associated with the Existing System Cost-effectiveness Low level security Easily traceable by intruders Low reliability
No unique identification

2.2 PROPOSED SYSTEM: The proposed method, based on elementary linear algebra, is asymmetric, involving a private key for embedding and a public key for detection. Its robustness against standard image degradation operations has been extensively tested and its security under projection attack has also been proven even though the envisage application refers to a collaborative environment, in which malicious attacks are not a critical aspect. Here we are providing multiple watermarking concepts, such as the sample image overwrite more than one time on the original image. Advantages of Proposed System Increases the system Reliability Centralized access Minimum cost High security System design for better presentation 2.3 PROBLEM DEFINITION AND METHODOLOGIES: The main problem has taken in the process of digital image tracing by sequential multiple watermarking developed act as a middleman between the client and the server. It reduces the work of the server and gives access to server resources to multiple clients at same time. It reduces the response time experienced by the clients .

The method operates on a watermarked image that has been geometrically distorted, either intentionally or unintentionally. Before the method begins, a global synchronization method, such as those described in watermarking literature is used to compute an estimate of the affine geometric distortion of the image since being embedded with the digital watermark. The method operates on small blocks of pixels within an image frame. To extract a watermark message from the block, a watermark reader first needs to determine the geometric distortion and compensate for it. The method described here attempts to provide a more accurate measure of the geometric distortion by refining the estimate of affine geometric distortion. A number of techniques have been developed for dealing with geometric distortion in watermarked images. One technique is to make the watermark more robust to geometric distortion by embedding it in attributes of the image that are relatively invariant to geometric distortion. cases, it typically does not address all forms of geometric distortion and more complex, non-linear geometric distortion. Another technique is to include geometric calibration features in the watermark signal that enable detection and estimation of the geometric distortion parameters, such as rotation and scale. These features include, for example, calibration signal peaks in a particular transform domain, such as the autocorrelation domain and/or Fourier domain. These techniques use correlation techniques or other pattern matching methods to estimate affine geometric distortion parameters. For example, cross correlation of the received signal and the calibration signal in particular transform domains produce correlation peaks that correspond to affine distortion parameters, such as rotation, scale, translation, shear, and differential scale. Such techniques do not provide error free estimation of geometric distortion. In some cases, errors result from estimation, even where the geometric distortion is linear. In addition, affine transform parameters can only approximate geometric distortion that is non-linear. For example, it can provide a piecewise linear estimate of affine distortion in sub-blocks of an image, but it cannot always accurately represent non-linear distortion in a manner that leads to error free recovery of the digital watermark message. The invention provides a method for synchronizing a watermark detector. One aspect of the invention is a method of synchronizing a digital watermark detector. The detector operates on a watermarked signal where a watermark signal has been distributed throughout the host media signal, and preferably, repeatedly embedded in segments of the host media signal (e.g., music, image or video signal). The method divides a watermarked signal into blocks, each block including a portion of a watermark signal.

2.4 MODULE DESCRIPTION 2.4a.MODULES OF WATERMARKING progression Resolution Hiding Watermarking Security providing

2.4a.1 Progression: Color Enhancement, Improve the image quality, Size corrections, and noise removal. Algorithm: Morphological Filters, Automatic Color Enhancement technique [ACE] Input: Output: Stills with low quality Quality stills.

2.4a.2 Resolution Hiding Reduce the resolution or hide the original images using sample images. Extension Selection In this module we are selecting which kind image we are going to user in our project. Here we are using two methods first one we want to insert a picture and second is layer of the pictures.

2.4a.3 Watermarking Implementing multiple watermarking concepts to provide security for the original images. For that we are going to generate random sample images with the same pixels. Using these images we can overwrite on the original image and then we get a collapsed image. Extraction Here we get the original information from Embedding object. In beginning time we have to give the corresponding secret no and select a corresponding object.

2.4a.4 Security providing Multiple watermark process will generate random keys for each and every image. Using these keys the reverse process will be done by receiver side.Openfiledialog box the image can opened.

2.4b.MODULES OF STEGANOGRAPHY Stegno Hide & Extract Security Provide

2.4b.1 Stegno In this module we are selecting a bitmap image in Carrier Bitmap Box. We get bmp image in filename for hide a text. Using this image we can hidden a text and generate a key for security and save as the image format (.jpeg,.jpg,.bmp,.png.,tif) in PC somewhere else in directories

2.4b.2 Hide & Extract In this module hide box a text has been entered in Unicode format or already have txt doc it has been save as a hidden message before we produce a gray scale noise in text message it is optional and save in PC. Extraction After a hidden process we can extract a Unicode text in Nachrich txt Box. To open the formatted image in carrier bitmap filename path here we enter a valid secret key either a Path filename or text to extract the hidden text. Its optional to save this hidden text in PC.

2.4b.3 Security provide Steganography will generate random keys either in filename path or Text for each and every hidden text image. Using these keys the reverse process will be done to extracted hidden message by receiver side

10

3. DEVELOPMENT ENVIRONMENT
3.1 HARDWARE SPECIFICATION System Hard disk Monitor Mouse Ram Keyboard

: Pentium IV 2.4 GHz : 40 GB : 15 VGA colour : Logitech. : 256 MB : 110 keys enhanced.

3.2 SOFTWARE SPECIFICATION Operating system Front End Coding Language :- Windows XP Professional /Windows 7 :- Microsoft Visual Studio .Net 2005 :- Visual C# .Net

11

4.SYSTEM DESIGN
Design is concerned with identifying software components specifying relationships among components. Specifying software structure and providing blue print for the document phase. 4.1. ARCHITECTURE DIAGRAMS
Original image Insert Text Watermark

Image Clone

Watermark Settings

Insert Image Watermark

Proper insertion frame overwrite more than 1 time

Generate sample image or own image

Get Collapsed image

Generate a Encrypt Key for Security

Collect a Key from Sender

Get an Image from Pc in Output file

Save a Watermarked Image in PC

Release a security use Encrypt key Show an Original Image

Fig. no 4.1: Architecture diagram of Multiple Watermarking.

12

Import a Bitmap Image

Hide a Text in Image Key in Text Security provide Key in Filename

Generate a Water Save a watermark Produce Gray Scale noise

Save a Water Marked image in PC

Extract a hidden text to view a message

Collect a key from sender releasing the text

Save a Text Doc in Pc

Fig. no 4.2: Architecture diagram of steganography

13

4.2. USE CASE DIAGRAM

Fig. no 4.3: use case diagram of steganography

Fig. no 4.4 : usecase diagram of Multiple watermarking

14

4.3.ACTIVITY DIAGRAM

Fig. no 4.5: Activity diagram of steganography

Fig. no 4.6: Activity diagram of Multiple Watermarking

15

4.4 CLASS DIAGRAM

Process Name of Class: Stegno Attribute: Text Hide Watermark Filter Method: Watermark Texture()

Multiple processes Name of Class: Sample Image Attribute: Generate Image Matrix Read Method: New Image()

Sample image Class :Watermark Attribute: Image Hide Overwrite Security Provide Method: Multiple Watermark()

Class :Security Attribute: Key Generate Encryption Method: Encrypt() Key Evaluate Class: Rebuild Attribute: Decryption Reverse Process Method: Decrypt()

Fig .no 4.7: Class Diagram

16

4.5 FUNCTIONAL DIAGRAM:

Fig. no 4.8: functional diagram of Multiple Watermarking

17

5. IMPLEMENTATION OF PROJECT DETAILS


5.1 Program Design Language
The .NET Framework defines the environment to execute Visual C# .NET applications and the services you can use within those applications. The .NET Framework has two main components:1. Common Language Runtime (CLR) 2. A unified set of class libraries The .NET class libraries include code for programming topics such as threading, file I/O, database support, XML parsing, and data structures. In addition to CLR and class libraries, the .NET framework also includes the programming languages and ASP.NET. Visual Studio .NET 2008 is the Integrated Development Environment for creating, documenting, running and debugging programs. The Start Page in VS.NET allows users to customize the IDE. It also contains helpful links such as recent projects, downloads and online newsgroups. Programs in VS.NET are organized into Projects and Solutions. A project is a group of related files and a solution is a group of related projects. Visual Studio .NET provides users with various windows to explore files. Dynamic Help window provides users with articles relevant to the current cursor location. C# provides the following types of selection constructs, if ifelse switchcase C# provides the following types of iteration constructs, while loop do loop for loop for each loop

Abstract class cannot be instantiated.Overriding a method is to change the implementation of the method in the derived class. The virtual keyword is used to modify the declaration of a method. Explicit Interface Implementation is used to specify which interface a member function is implementing in case of a name ambiguity. Namespaces is a grouping of similar classes having related methods and is used specifically to avoid name clashes between classes.

5.2 Linear algebra Linear algebra is the branch of mathematics concerned with the study of vectors, vector spaces, linear maps , and systems of linear equations. Vector spaces are a central theme in modern mathematics; thus, linear algebra is widely used in both abstract algebra and functional analysis. Linear algebra also has a concrete representation in analytic geometry and it is generalized in operator

18

theory. It has extensive applications in the natural sciences and the social sciences, since nonlinear models can often be approximated by linear ones. For example, in economics, one can create and use, say, 8-dimensional vectors or 8-tuples to represent the Gross National Product of 8 countries. One can decide to display the GNP of 8 countries for a particular year, where the countries' order is specified, for example, (United States, United Kingdom, France, Germany, Spain, India, Japan, Australia), by using a vector (v1, v2, v3, v4, v5, v6, v7, v8) where each country's GNP is in its respective position. A vector space (or linear space), as a purely abstract concept about which theorems are proved, is part of abstract algebra, and is well integrated into this discipline. Some striking examples of this are the group of invertible linear maps or matrices, and the ring of linear maps of a vector space The general method of finding a linear way to look at a problem, expressing this in terms of linear algebra, and solving it, if need be by matrix calculations, is one of the most generally applicable in mathematics. Some useful theorems Every vector space has a basis. Any two bases of the same vector space have the same cardinality; equivalently, the dimension of a vector space is well-defined. A matrix is invertible if and only if its determinant is nonzero. A matrix is invertible if and only if the linear map represented by the matrix is an isomorphism. If a square matrix has a left inverse or a right inverse then it is invertible (see invertible matrix for other equivalent statements). A matrix is positive semi definite if and only if each of its Eigen values is greater than or equal to zero. A matrix is positive definite if and only if each of its Eigen values is greater than zero. The spectral theorem (regarding diagonalizable matrices).

5.3 Geometric Distortion Geometric distortion is an error on image between the actual image coordinate and ideal image coordinate. There are different types of geometric distortion Internal distortion result from the geometric lens (i.e.) Radial, Tegntial, Projection distortions, Scale error, Skew, Along track scale error, Step wise distortion, scanlone scale error. External distortion result from the attitude of the lens or shape of the object(i.e.) Shift error, Scale error/H error,Skew,Skew of Scan line, projection distortion, distortion due to earth curvature, terrain relief displacement.

19

6. SYSTEM IMPLEMENTATION
Implementation is the most crucial stage in achieving a successful system and giving the users confidence that the new system is workable and effective. Implementation of a modified application to replace an existing one. This type of conversation is relatively easy to handle, provide there are no major changes in the system. Each program is tested individually at the time of development using the data and has verified that this program linked together in the way specified in the programs specification, the computer system and its environment is tested to the satisfaction of the user. The system that has been developed is accepted and proved to be satisfactory for the user. And so the system is going to be implemented very soon. A simple operating procedure is included so that the user can understand the different functions clearly and quickly. SAMPLE SOURCE CODE 6.1 SOURCE CODE OF STEGANOGRAPHY
LOGIN.CS 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.Data.SqlClient; namespace stegno { public partial class login : Form { public login() { InitializeComponent(); } private void btnlogin_Click(object sender, EventArgs e) { if (txtname.Text =="admin") { if (txtpawd.Text == "admin") { //string s = dr[0].ToString(); MessageBox.Show("Login Success"); stegno sf = new stegno();

20
this.Hide(); sf.Show(); //this.Hide(); //cf.Show(); } else { MessageBox.Show("Enter correct txtpawd.Text = ""; } } else { MessageBox.Show("Enter correct password"); } if(txtname.Text==""||txtpawd.Text=="") { MessageBox.Show("Enter the credentials correctly"); } else { SqlConnection con = new SqlConnection("Data Source=GSBHALA;Initial Catalog=stegno;User ID=sa;Password=sa;Integrated Security=true"); con.Open(); SqlCommand cmd = new SqlCommand("select count(*) from loguser where username='" + txtname.Text + "'", con); int count = Convert.ToInt32(cmd.ExecuteScalar()); ............................... .............................................. ); SqlDataReader dr = cmd1.ExecuteReader(); while (dr.Read()) { if (txtname.Text == dr[0].ToString()) { if (txtpawd.Text == dr[1].ToString()) { string s = dr[0].ToString(); MessageBox.Show("Login Success"); } else { MessageBox.Show("Enter correct password"); txtpawd.Text = ""; } STEGNO.CS 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; namespace stegno { password");

21
public partial class stegno : Form { public stegno() { InitializeComponent(); } private void btnimg_Click(object sender, EventArgs e) { String fileName = GetFileName("Bitmaps (*.bmp)|*.bmp|*.jpeg|*.jpg|Tagged Image File Format(*.tif)|*.tif|PNG24(*.png)|*.png"); if (fileName != null) { txtimage.Text = fileName; SetImage(fileName); } } private void btnkey_Click(object sender, EventArgs e) { ....... ....... { ..... rdoKeyFile.Checked = true; } } private void btnnachricht_Click(object sender, EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); if (dlg.ShowDialog() == DialogResult.OK) { txtsvextmsg.Text = dlg.FileName; } } private void btnmessage_Click(object sender, EventArgs e) { String fileName = GetFileName(String.Empty); if ( ............................. .......................... } } private void btnhidemsg_Click(object sender, EventArgs e) { Bitmap bitmap = (Bitmap)pictureBox1.Image; get a stream for the message to hide Stream messageStream = GetMessageStream(); if (messageStream.Length == 0) { MessageBox.Show("Please enter a message or select a file."); txtMessageText.Focus(); txtMessageText.Text = ""; }

22
else { get a stream fot the key Stream keyStream = GetKeyStream(); if (keyStream.Length == 0) { MessageBox.Show("Please enter a password or select a key file."); txtkeytext.Focus(); } else { try { hide the message CryptUtility.HideMessageInBitmap(messageStream, bitmap, keyStream, chgryscale.Checked); display result pictureBox1.Image = bitmap; btnsaveresult.Enabled = true; } catch (Exception ex) { MessageBox.Show("Exception:\r\n" + ex.Message); } } keyStream.Close(); } txtMessageText.Text = string.Empty(); messageStream.Close(); bitmap = null; } private void btnsaveresult_Click(object sender, EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "Bitmaps (*.bmp)|*.bmp|*.jpeg|*.jpg|Tagged Image File Format(*.tif)|*.tif|PNG-24(*.png)|*.png"; if (dlg.ShowDialog() == DialogResult.OK) { .................... ............... .... / <summary>Creates a stream to read the message from a string or a file</summary> / <returns>FileStream for a message file, or MemoryStream</returns> private Stream GetMessageStream(){ Stream messageStream; if( messageStream = new MemoryStream(messageBytes); }else{ messageStream = new FileStream(txthidemsg.Text, FileMode.Open, FileAccess.Read); } return messageStream;

23
} / <summary>Creates a stream to read the key from a string or a file</summary> / <returns>FileStream for a key file, or MemoryStream for a password</returns> private Stream GetKeyStream() { Stream keyStream; if( ............................... .................... } return keyStream; } / <summary>Opens a bitmap</summary> / <param name="fileName">Path and name of the bitmap file</param> private void SetImage(String fileName){ pictureBox1.Image = new Bitmap(fileName); int index = fileName.LastIndexOf("\\")+1; if(index > 0){ fileName = fileName.Substring(index); } grpPicture.Text = "Carrier Bitmap ("+fileName+")"; } / <summary>Displays the OpenFile dialog</summary> / <returns>The selected file name, or null</returns> private String GetFileName(String filter) OpenFileDialog dlg = new OpenFileDialog(); dlg.Multiselect = false; if(filter.Length > 0) { dlg.Filter = filter; } if( dlg.ShowDialog(this) != DialogResult.Cancel) { return dlg.FileName; } else {return null; } private void llclient_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { clientform cf = new clientform(); this.Hide(); cf.Show(); } private void llserver_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { server sv = new server(); this.Hide(); sv.Show(); }

24

6.2 SOURCE CODE OF MULTIPLE WATERMARKING


MAINFORM.CS using using using using using using using using using System; System.Drawing; System.Drawing.Imaging; System.Drawing.Printing; System.Collections; System.ComponentModel; System.Windows.Forms; System.Data; System.IO;

using WeifenLuo.WinFormsUI; using rpaulo.toolbar; using ImageLib.Imaging; namespace WaterMarking { / <summary> / Summary description for Form1. / </summary> public class MainForm : System.Windows.Forms.Form, IDocumentsHost { private static string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "app.config"); private static string dockManagerConfigFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockManager.config"); string tmp = @"c:\tmp"; private int unnamedNumber = 0; private Configuration config = new Configuration(); private HistogramWindow histogramWin = new HistogramWindow(); private ToolBarManager toolBarManager; private WeifenLuo.WinFormsUI.DockManager dockManager; private System.Windows.Forms.MainMenu mainMenu; private System.Windows.Forms.MenuItem fileItem; private System.Windows.Forms.MenuItem exitFileItem; private System.Windows.Forms.MenuItem OpenItem; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.MenuItem closeFileItem; private System.Windows.Forms.MenuItem closeAllFileItem; private System.Windows.Forms.MenuItem optionsItem; private System.Windows.Forms.MenuItem openInNewOptionsItem; private System.Windows.Forms.MenuItem viewItem; private System.Windows.Forms.MenuItem windowItem; private System.Windows.Forms.MenuItem helpItem; private System.Windows.Forms.MenuItem histogramViewItem; private System.Windows.Forms.MenuItem redHistogramViewItem; ............................................. .............; private System.Windows.Forms.PrintDialog printDialog; private System.Windows.Forms.StatusBarPanel ycbcrPanel; private System.Windows.Forms.MenuItem statisticsViewItem;

25
private System.Windows.Forms.MenuItem menuItem4; private System.Windows.Forms.MenuItem menuItem6; private System.ComponentModel.IContainer components; public MainForm() { Required for Windows Form Designer support InitializeComponent(); TODO: Add any constructor code after InitializeComponent call toolBarManager = new ToolBarManager(this, this); add toolbars ToolBarDockHolder holder; ...... ................. 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() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); this.mainMenu = new System.Windows.Forms.MainMenu(this.components); this.fileItem = new System.Windows.Forms.MenuItem(); this.OpenItem = new System.Windows.Forms.MenuItem(); this.reloadFileItem = new System.Windows.Forms.MenuItem(); this.saveFileItem = new System.Windows.Forms.MenuItem(); this.menuItem1 = new System.Windows.Forms.MenuItem(); /........................................... /.................. .MenuItem(); this.menuItem2 = new System.Windows.Forms.MenuItem(); this.exitFileItem = new System.Windows.Forms.MenuItem(); this.viewItem = new System.Windows.Forms.MenuItem(); this.mainBarViewItem = new System.Windows.Forms.MenuItem();

26
this.menuItem3.Index = 8; this.menuItem3.Text = "-"; centerViewItem this.centerViewItem.Index = 9; this.centerViewItem.Shortcut = System.Windows.Forms.Shortcut.F9; this.centerViewItem.Text = "&Center"; this.centerViewItem.Click += new System.EventHandler(this.centerViewItem_Click); openInNewOptionsItem this.openInNewOptionsItem.Index = 0; this.openInNewOptionsItem.Text = "Open in &new document on change"; this.openInNewOptionsItem.Click += new System.EventHandler(this.openInNewOptionsItem_Click); rememberOptionsItem this.rememberOptionsItem.Index = 1; this.rememberOptionsItem.Text = "&Remember on change"; this.rememberOptionsItem.Click += new System.EventHandler(this.rememberOptionsItem_Click); windowItem this.windowItem.Index = 3; this.windowItem.MdiList = true; this.windowItem.MergeOrder = 3; this.windowItem.Text = "&Window"; helpItem this.helpItem.Index = 4; this.helpItem.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.aboutHelpItem}); this.helpItem.MergeOrder = 4; this.helpItem.Text = "&Help"; aboutHelpItem this.aboutHelpItem.Index = 0; this.aboutHelpItem.Text = "&About"; this.aboutHelpItem.Click += new System.EventHandler(this.aboutHelpItem_Click); menuItem4 this.menuItem4.Index = 5; this.menuItem4.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem6}); this.menuItem4.Text = "Output";

27
menuItem6 this.menuItem6.Index = 0; this.menuItem6.Text = "Open File"; this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click); statusBar this.statusBar.Location = new System.Drawing.Point(0, 511); this.statusBar.Name = "statusBar"; this.statusBar.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] { this.zoomPanel, this.sizePanel, this.selectionPanel, this.colorPanel, this.hslPanel, this.ycbcrPanel, this.infoPanel}); this.statusBar.ShowPanels = true; this.statusBar.Size = new System.Drawing.Size(792, 22); this.statusBar.TabIndex = 1; ofd this.ofd.Filter = "Image files (*.jpg,*.png,*.tif,*.bmp,*.gif)|*.jpg;*.png;*.tif;*.bmp;*.gif|JPG fil" + "es (*.jpg)|*.jpg|PNG files (*.png)|*.png|TIF files (*.tif)|*.tif|BMP files (*.bm" + "p)|*.bmp|GIF files (*.gif)|*.gif"; this.ofd.Title = "Open image"; sfd this.sfd.Filter = "JPG files (*.jpg)|*.jpg|BMP files (*.bmp)|*.bmp"; this.sfd.Title = "Save image"; MainForm this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(792, 533); this.Controls.Add(this.panel1); this.Controls.Add(this.statusBar); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.IsMdiContainer = true; this.Menu = this.mainMenu; this.Name = "MainForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "WaterMarking"; this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing);

28
this.Load += new System.EventHandler(this.MainForm_Load); .......... ............... this.ResumeLayout(false); } #endregion / <summary> / The main entry point for the application. / </summary> [STAThread] static void Main() { Application.Run(new MainForm()); } #region IDocumentsHost implementation Create new document on change on existent or modify it public bool CreateNewDocumentOnChange { get { return config.openInNewDoc; } } Remember or not an image, so we can back one step public bool RememberOnChange { get { return config.rememberOnChange; } } Create new document public bool NewDocument(Bitmap image) { unnamedNumber++; ................. imgDoc.Focus(); set events SetupDocumentEvents(imgDoc); return true; } Create new document for ComplexImage public bool NewDocument(ComplexImage image) { ........... ............... return true; } Get an image with specified dimension and pixel format public Bitmap GetImage(object sender, String text, Size size, PixelFormat format)

29
{ ArrayList ArrayList names = new ArrayList(); images = new ArrayList();

foreach (Content doc in dockManager.Documents) { if ((doc != sender) && (doc is ImageDoc)) { Bitmap img = ((ImageDoc) doc).Image; check pixel format, width and height if ((img.PixelFormat == format) && ((size.Width == -1) || ............... ................ } } } SelectImageForm form = new SelectImageForm(); form.Description = text; form.ImageNames = names; allow user to select an image if ((form.ShowDialog() == DialogResult.OK) && (form.SelectedItem != -1)) { return (Bitmap) images[form.SelectedItem]; } return null; } #endregion On form closing private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) { close all files foreach (Content c in dockManager.Documents) c.Close(); save configuration config.mainWindowLocation = this.Location; config.mainWindowSize = this.Size; config.Save(configFile); save dock manager configuration dockManager.SaveAsXml(dockManagerConfigFile); } On form load private void MainForm_Load(object sender, System.EventArgs e) { load configuration if (config.Load(configFile))

30
{ this.Location = config.mainWindowLocation; this.Size = config.mainWindowSize; } try { load dock manager configuration if ........... .......... } catch (Exception) { } show histogram ShowHistogram(config.histogramVisible); } Callback for loading Dock Manager private Content GetContentFromPersistString(string persistString) { if .......... ...... return null; } Main tool bar clicked private void mainToolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { switch (e.Button.ImageIndex) { case 0: open an image OpenFile(); break; case 1: save file SaveFile(); break; case 2: copy CopyToClipboard(); break; case 3: paste PasteFromClipboard(); break; case 4: show histogram window ShowHistogram(!config.histogramVisible); break; case 5: about About(); break; } } active document changed

31
private void dockManager_ActiveDocumentChanged(object sender, System.EventArgs e) { Content doc = dockManager.ActiveDocument; ImageDoc imgDoc = (doc is ImageDoc) ? (ImageDoc) doc : null; } on File item popum - set state ot child menu items private void fileItem_Popup(object sender, System.EventArgs e) { Content doc = dockManager.ActiveDocument; bool docOpened = (doc != null); saveFileItem.Enabled = docOpened; copyFileItem.Enabled = docOpened; pasteFileItem.Enabled = (Clipboard.GetDataObject().GetDataPresent(DataFormats.Bitmap)); printFileItem.Enabled = docOpened; printPreviewFileItem.Enabled = docOpened; } Exit application private void exitFileItem_Click(object sender, System.EventArgs e) { Close(); } Setup events private void SetupDocumentEvents(ImageDoc doc) { ............ ..................... ......................... (this.document_SelectionChanged); } Open file private void OpenFile() { if (ofd.ShowDialog() == DialogResult.OK) { ImageDoc imgDoc = null; try { create image document imgDoc = new ImageDoc(ofd.FileName, (IDocumentsHost) this); imgDoc.Text = Path.GetFileName(ofd.FileName); } catch (ApplicationException ex) {

32
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (imgDoc != null) { imgDoc.Show(dockManager); imgDoc.Focus(); set events SetupDocumentEvents(imgDoc); } } } Show/hide histogram private void ShowHistogram(bool show) { config.histogramVisible = show; histogramViewItem.Checked = show; histogramButton.Pushed = show; if (show) { histogramWin.Show(dockManager); } else { histogramWin.Hide(); } } Show/hide statistics private void ShowStatistics(bool show) { config.statisticsVisible = show; statisticsViewItem.Checked = show; if ( show ) { statisticsWin.Show( dockManager ); } else { statisticsWin.Hide( ); } }

On "File->Open" item clicked private void OpenItem_Click(object sender, System.EventArgs e) { OpenFile(); }

33
Reload file private void reloadFileItem_Click(object sender, System.EventArgs e) { Content doc = dockManager.ActiveDocument; } } Save file private void SaveFile() { Content doc = dockManager.ActiveDocument; if (doc != null) { set initial file name show dialog if (sfd.ShowDialog(this) == DialogResult.OK) { ImageFormat format = ImageFormat.Jpeg; resolve file format switch (Path.GetExtension(sfd.FileName).ToLower()) { case ".jpg": format = ImageFormat.Jpeg; break; case ".bmp": format = ImageFormat.Bmp; break; default: MessageBox.Show(this, "Unsupported image format was specified", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } save the image try { if (doc is ImageDoc) { ((ImageDoc) doc).Image.Save(sfd.FileName, format); } if (doc is FourierDoc) { ((FourierDoc) doc).Image.Save(sfd.FileName, format); } } catch (Exception) {

34
MessageBox.Show(this, "Failed writing image file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } On "File->Save" - save the file private void saveFileItem_Click(object sender, System.EventArgs e) { SaveFile(); } Copy image to clipboard private void CopyToClipboard() { Content doc = dockManager.ActiveDocument; if (doc != null) { .............. ..................... } } } On "File->Copy" - copy image to clipboard private void copyFileItem_Click(object sender, System.EventArgs e) { CopyToClipboard(); } Paste image from clipboard private void PasteFromClipboard() { .......... ................. } } On "File->Paste" - paste image from clipboard private void pasteFileItem_Click(object sender, System.EventArgs e) { PasteFromClipboard(); } Close file private void closeFileItem_Click(object sender, System.EventArgs e) { if (dockManager.ActiveDocument != null) dockManager.ActiveDocument.Close(); } Close all files

35
private void closeAllFileItem_Click(object sender, System.EventArgs e) { foreach (Content c in dockManager.Documents) c.Close(); }

Bitmap image = ((ImageDoc) sender).Image; if (image.PixelFormat == PixelFormat.Format24bppRgb) { Color color = image.GetPixel(e.Location.X, e.Location.Y); RGB rgb = new RGB( color ); YCbCr ycbcr = new YCbCr( ); ImageLib.Imaging.ColorConverter.RGB2YCbCr( rgb, ycbcr ); RGB this.colorPanel.Text = string.Format( "RGB: {0}; {1}; {2}", color.R, color.G, color.B ); HSL this.hslPanel.Text = string.Format( "HSL: {0}; {1:F3}; {2:F3}", (int) color.GetHue(), color.GetSaturation(), color.GetBrightness() ); YCbCr this.ycbcrPanel.Text = string.Format( "YCbCr: {0:F3}; {1:F3}; {2:F3}", ycbcr.Y, ycbcr.Cb, ycbcr.Cr ); } else if (image.PixelFormat == PixelFormat.Format8bppIndexed) { Color color = image.GetPixel(e.Location.X, e.Location.Y); this.colorPanel.Text = "Gray: " + color.R.ToString(); this.hslPanel.Text = ""; this.ycbcrPanel.Text = ""; } } else { this.selectionPanel.Text = ""; this.colorPanel.Text = ""; this.hslPanel.Text = ""; this.ycbcrPanel.Text = ""; } } On "View->Main Tool bar" menu item click private void mainBarViewItem_Click(object sender, System.EventArgs e) { ToolBarDockHolder holder = toolBarManager.GetHolder(mainToolBar); toolBarManager.ShowControl(mainToolBar, !holder.Visible);

36
Statistics docking state changed private void statistics_DockStateChanged(object sender, System.EventArgs e) { if ( save to config config.statisticsVisible = visible; update menu & tool bar statisticsViewItem.Checked = visible; } } Print document page private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Content doc = dockManager.ActiveDocument; if (doc != null) { Bitmap image = null; System.Diagnostics.Debug.WriteLine("X: e.MarginBounds.Left + ", Y = " + e.MarginBounds.Top + ", width e.MarginBounds.Width + ", height = " + e.MarginBounds.Height); System.Diagnostics.Debug.WriteLine("X: e.PageBounds.Left + ", Y = " + e.PageBounds.Top + ", width = " e.PageBounds.Width + ", height = " + e.PageBounds.Height); int int e.MarginBounds.Height)) { float f = Math.Min((float) e.MarginBounds.Width / width, (float) e.MarginBounds.Height / height); width = (int)(f * width); height = (int)(f * height); } e.Graphics.DrawImage(image, e.MarginBounds.Left, e.MarginBounds.Top, width, height); } } private void menuItem6_Click(object sender, System.EventArgs e) { OpenFileDialog op = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) { FileStream fs = new FileStream(tmp, FileMode.Open, FileAccess.Read); StreamReader m_streamReader = new StreamReader(fs); string s; string k1; width = image.Width; height = image.Height; " + = " + " + +

if ((width > e.MarginBounds.Width) || (height >

37
s=m_streamReader.ReadLine(); string tmp1 = null; string r1=null,r2=null,r3=null; bool c=false; while ((s = m_streamReader.ReadLine()) != null) { if (ofd.FileName.Equals(s)==true && c==false) { r1=s.ToString(); r2=tmp1.ToString(); r3 = m_streamReader.ReadLine(); c=true; } tmp1 = s; } k1 = r3; tmp1=r2; fs.Close(); if (r1==null || r2==null || r3 == null) { MessageBox.Show("invalid Filename"); } else { EnterKey k = new EnterKey(); if (k.ShowDialog() == DialogResult.OK) { if (k.key.Length != 8) { MessageBox.Show("Invalid Key"); } else { if(k1.Equals(k.key)) { OpenFile1(tmp1.ToString()); } else { MessageBox.Show("Invalid Key"); } } k.Close(); }

38
KEYWATERMARK.CS using using using using using using using System; System.Drawing; System.Collections; System.ComponentModel; System.Windows.Forms; System.IO; System.Drawing.Imaging;

namespace WaterMarking { / <summary> / Summary description for Keywatermark. / </summary> public class Keywatermark : System.Windows.Forms.Form { private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; public string tmp = @"c:\tmp"; public string destination; public string key; private System.Windows.Forms.ProgressBar progressBar1; / <summary> / Required designer variable. / </summary> / private System.ComponentModel.Container components = null; public Keywatermark(Bitmap img) { Required for Windows Form Designer support InitializeComponent(); pictureBox1.Image = (Bitmap)img; textBox1.Text = p.ToString(); TODO: Add any constructor code after InitializeComponent call } / <summary> / Clean up any resources being used. / </summary> protected override void Dispose( bool disposing ) { if( disposing ) {

39
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() { this.groupBox1 = new System.Windows.Forms.GroupBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.progressBar1 = new System.Windows.Forms.ProgressBar(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.SuspendLayout(); label1 this.label1.Location = new System.Drawing.Point(32, 16); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(64, 23); this.label1.TabIndex = 0; this.label1.Text = "8 Digit Key"; button1 this.button1.Location = new System.Drawing.Point(432, 16); this.button1.Name = "button1"; this.button1.TabIndex = 2; this.button1.Text = "Encrypt"; this.button1.Click += new System.EventHandler(this.button1_Click); button2 this.button2.Enabled = false; this.button2.Location = new System.Drawing.Point(552, 16); this.button2.Name = "button2"; this.button2.TabIndex = 3; this.button2.Text = "Save"; this.button2.Click += new System.EventHandler(this.button2_Click); Keywatermark this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(736, 510); this.Controls.Add(this.progressBar1); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox1); this.Name = "Keywatermark"; this.Text = "Keywatermark"; this.Load += new System.EventHandler(this.Keywatermark_Load); this.groupBox1.ResumeLayout(false);

40
this.groupBox2.ResumeLayout(false); this.ResumeLayout(false); } #endregion private void Keywatermark_Load(object sender, System.EventArgs e) { } private void groupBox2_Enter(object sender, System.EventArgs e) { } private void button2_Click(object sender, System.EventArgs e) { SaveFileDialog sv = new SaveFileDialog(); ImageFormat format = ImageFormat.Jpeg; if (sv.ShowDialog() == DialogResult.OK ) { destination = sv.FileName; key= textBox1.Text; FileStream fs = new FileStream(tmp, FileMode.Append, FileAccess.Write); StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.WriteLine(sv.FileName+".jpg"); m_streamWriter.WriteLine(key.ToString()); m_streamWriter.Flush(); pictureBox1.Image.Save(sv.FileName+".jpg" ,format); fs.Close(); this.DialogResult = DialogResult.OK; this.Visible = false;} } private void button1_Click(object sender, System.EventArgs e) { if (textBox1.Text.Length == 8 ) { int i; button2.Enabled = true; for (i=1;i<=999;i++) { progressBar1.Value = progressBar1.Value + 1; } button1.Enabled = false; MessageBox.Show("Encryption completed"); } else { MessageBox.Show("Water Marking encryption Failed veryfy the key size" } } ); } }

41

7. SYSTEM TESTING
Testing is done for each module. After testing all the modules, the modules are integrated and testing of the final system is done with the test data, specially designed to show that the system will operate successfully in all its aspects conditions. The procedure level testing is made first. By giving improper inputs, the errors occurred are noted and eliminated. Thus the system testing is a confirmation that all is correct and an opportunity to show the user that the system works. The final step involves Validation testing, which determines whether the software function as the user expected. The end-user rather than the system developer conduct this test most software developers as a process called Alpha and Beta test to uncover that only the end user seems able to find. This is the final step in system life cycle. Here we implement the tested error-free system into real-life environment and make necessary changes, which runs in an online fashion. Here system maintenance is done every months or year based on company policies, and is checked for errors like runtime errors, long run errors and other maintenances like table verification and reports. 7.1 TYPE OF TESTING: 7.1.1 UNIT TESTING: Unit testing verification efforts on the smallest unit of software design, module. This is known as Module Testing. The modules are tested separately. This testing is carried out during programming stage itself. In these testing steps, each module is found to be working satisfactorily as regard to the expected output from the module. 7.1.2 INTEGRATION TESTING: Integration testing is a systematic technique for constructing tests to uncover error associated within the interface. In the project, all the modules are combined and then the entire programmer is tested as a whole. In the integration-testing step, all the error uncovered is corrected for the next testing steps. 7.1.3 VALIDATION TESTING: To uncover functional errors, that is, to check whether functional characteristics confirm to specification or not specified.

42

7.2 LEVEL OF TESTING 7.2.1 Unit Testing: Unit testing is usually conducted as part of a combined code and unit test phase of the software lifecycle, although it is not uncommon for coding and unit testing to be conducted as two distinct phases. Test strategy and approach Field testing will be performed manually and functional tests will be written in detail. Test objectives All field entries must work properly. Pages must be activated from the identified link. The entry screen, messages and responses must not be delayed.

Features to be tested Verify that the entries are of the correct format No duplicate entries should be allowed All links should take the user to the correct page.

7.2.2 Integration Testing

Software integration testing is the incremental integration testing of two or more

integrated

software components on a single platform to produce failures caused by interface defects.The task of the integration test is to check that components or software applications, e.g. components in a software system or one step up software applications at the company level interact without error. Test Results: All the test cases mentioned above passed successfully. No defects encountered.

43

7.3 TEST CASE Unit testing: Username and Password Test Case id 01 Description Enter User name as Blank Space and proceed. (Null Check). Expected Results Actual Results Status

It should produce an error message (It should not accept Blank Space) It should accept to proceed.

It is not accepting.

Pass

02

Enter User name with varchar50. (Max. Length Check). Leave the password field blank and proceed. (Null Check). Enter a password with varchar50. (Max. Length Check). Enter a password with special characters. (Negative case)

It is not accepting more than 25 characters It is accepting

Fail (Medium) Pass

03

It should accept to proceed

04

It should accept to proceed.

It is not accepting more than 25 characters It is not accepting

Fail (Medium) Pass

05

It should not accept to proceed

Table no: 7.1 unit testing Black box testing s.no 1. 2. Test Item Login New user register Test Input Test Output User name & Home page passwd Name , age, sex, User registration details addr.. Table no: 7.2 Black box testing Test Input Test Process User name & Validate the input passwd Name , age, sex, Validate the register addr.. details Table no: 7.3 White box testing Dependency Check the user name and passwd Store the details in database

White box testing s.no 1. 2. Test Item Login New user register Test Output User home page View the details

44

8. PERFORMANCE AND LIMITATIONS


8.1 MERITS OF THE SYSTEM

Clients business Objectives, but particularly by our strict adherence to the ethical principles of public relations Continuous search designed for op Unique and creative solutions that meet the clients expectations not only by realizing the port unities beyond the agreed communications and business objective

Creative approaches to the clients special needs in order to find unique and tailored communications solutions

Professional quality of services provided by a highly motivated team

8.2 FUTURE ENHANCEMENT Data hidden has two general techniques, which are, digital watermarking and steganography. In future enhancement, data hidden approaches have two main limitations, the size of the hidden data and the robustness of the watermark techniques. In future, we will try to achieve the following objectives:

To analyze the features of audio file and video files that can be used to implement the high rate data hiding;

To investigate the approaches used in audio and video watermarking domains, environment for Implementing a secure, robust and high rate data hiding in the audio and video files ; A further enhancement of the image watermarking method stores these sub-sample offsets and

applies curve fitting to fit the offsets (e.g., the horizontal and vertical translational shift vectors) to a curve. This curve fitting process filters the array of offsets to provide a refined array of sub-sample offsets. This refined set of offsets is then used to align the watermark image data before performing message decoding operations.

45

9. APPENDICES
9.1 SAMPLE SCREENSHOTS AND REPORT 9.1a. INPUT DESIGN: Input design is the process of converting user-originated inputs to a computer-based format. Input design is one of the most expensive phases of the operation of computerized system and is often the major problem of a system. In the project, the input design is made in various window forms with various methods.

9.2 LOGIN FORM: Fig. no 9.1: Screen shots of Login Form

46 9.3 KEY GENERATION FORM

Fig. no 9.2: Screen shots of steganography


1ST MODULE: OPEN A BITMAP IMAGE FOR HIDE TEXT DOC AND GENERATE A KEY EITHER IN FILENAME OR TEXT

9.3a.TEXT MESSAGE HIDE


2 ND MODULE: HIDE A TEXT MESSAGE WITH PRODUCE GRAY SCALE NOISE AND SAVE AS (.JPG,.TIF,.BMP,.JPEG,.PNG) IN PC

47
2ND MODULE: EXTRACT A HIDDEN TEXT WITH THE HELP OF CARRIER BITMAP

IMAGE(STEGNO.JPG) BUT NO VALID KEY HAS BEEN ENTERED

9.3b. EXTRACT A TEXT


3RD MODULE: A VALID KEY IS ENTER IN FILENAME AND EXTRACT HIDDEN TEXT NOW A UNICODE TEXT HAS BEEN SHOWN

48

UNICODE HIDDEN TEXT WANT TO SAVE A EXTRACTED MESSAGE TO FILE(.TXT)IN PC

TEXT DOCUMENT SHOWS THE EXTRACTED MESSAGE SAVE IN FILE

49

9.4 WATERMARKING MAIN FORM Fig. no 9.3: Screen shots of Multiple Watermarking 1ST MODULE: OPEN A IMAGE IN FILEOPENDIALOG IN MAIN FORM

AFTER SELECT A ORIGINAL IMAGE

50
GENERATE A WATERMARKING CONCEPT

2ND MODULE: GENERATE A TEXT WATERMARKING AND APPLY IN WATERMARKING CONCEPT

51
AFTER TEXT WATERMARK GENERATE A SAMPLE IMAGE IN IMAGE WATERMARKING

9.4a. GENERATE SAMPLE IMAGE


GENERATE A SAMPLE IMAGE WATERMARKING CONCEPT

52
AUTOMATIC IMAGE GENERATION UPEND TO THE ORIGINAL IMAGE WHILE THE TIME OF CLICK EVENT

9.4b. MODIFICATION FORM


MODIFICATION WOULD BE OCCURRED ONLY THE UPENDED IMAGE AFTER SELECTION OUR OWN IMAGE

53

AFTER MODIFICATION

MODIFICATION [OVERLAP] MORE THAN ONE SAMPLE IMAGES ALSO APPLYCLONE FINALY GET COLLAPSED IMAGE

54

9.4c. SECURITY FORM 3RD MODULE: KEY GENERATION IN KEY WATERMARKING

GIVEN KEY SHOULD BE 8 DIGITS

55
ENCRYPTED IT FOR SECURITY

KEY GENERATION AFTER ENCRYPTED IT SHOULD BE SAVE TO LOCAL DIR FOR UPLOAD OR GET OUR OUTPUT

56

9.5 OUTPUT DESIGN: Output design generally refers to the results and information that are generated by the system for many end-users; output is the main reason for developing the system and the basis on which they evaluate the usefulness of the application. 9.5a.OUTPUT FORM Fig. no 9.4: Screen shots of Output Form 4TH MODULE: RECEIVER SIDE FOR GET AN OUTPUT WE SHOULD GIVE THE IMAGE FROM OUR
LOCAL DIR [IT SHOULD BE OUR COLLAPSED IMAGE]

OPEN THE COLLAPSED IMAGE FILE SELECTION

57
OPEN SECURITY IMAGE

KEY VERIFICATION IF OUR GIVEN INPUT KEY IS WRONG MEANS IT WILL GIVE ONE ERROR REPORT TO USER[ONE TYPE OF TESTING]

58
ENTER A VALID KEY IT HAS CASE SENSITVE TO OPEN A ORIGINAL IMAGE

KEY VERIFICATION IF VALID KEY INPUT IS ACCEPTED OUR ORIGINAL IMAGE HAS DISPLAYED

59

10. CONCLUSION:
The main goal of steganography and digital watermark is to be unsuspected by the human eyes or human ear. For instance image watermarking or image steganography is a great example for data protection and intellectual property. Therefore, design, development and implementation of new methods or techniques required a burly background on signal processing. In this paper, we summarize the domains on which digital image steganography and watermarking are implemented. Moreover, properties of the image environments, digital image representation transmission environment, image watermarking techniques, the available stego-analysis attackers and image quality assessment are reviewed in this paper. This review might help the researchers to design, develop, and establish new methods, modules, algorithms, further analysis on steganography and digital watermarking. Moreover, several problems, approaches and techniques from the literature were discussed in this paper. The main challenges of steganography and digital watermarking are: the survival of the Watermark; the main challenge of data hidden is the survival against all types of attacks. Secondly, protection of the watermark: a multiple layers watermark when layers aim to protect each other from being analyzed, The more robust and reliable the implementation is, the longer it will last. The Steganography and watermarking research is progressing very fast and numerous researcher from various fields are focusing to develop some workable scheme. Different companies also working to get commercial products. We hope some commercial and effective schemes will be available in future.

60

REFERENCES
[1] C. Busch and S. D. Wolthusen, Tracing data diffusion in industrial research with robust watermarking, in Proc. IEEE 4th Workshop on Multimedia Signal Processing 2001, 2001, pp. 207 212. [2] G. Coatrieux, H. Maitre, B. Sankur, Y. Rolland, and R. Collorec, Relevance of watermarking in medical imaging, in Proc. IEEE EMBS Int. Conf. Information Technology Applications in Biomedicine 2000, 2000, pp. 250255. [3] A. Giakoumaki, S. Pavlopoulos, and D. Koutsouris, A multiple watermarking scheme applied to medical image management, in Proc. IEEE Int. Conf. Engineering in Medicine and Biology Society 2004, 2004, vol. 2, pp. 32413244. [4] , Multiple image watermaking applied to health information management, IEEE Trans. Inf. Technol. Biomed., vol. 10, no. 4, pp. 722732, Oct. 2006. [5] M. Li, S. Narayanan, and R. Poovendran, Tracing medical images using multi -band watermarks, in Proc. 26th Ann. Int. Conf. Engineering in Medicine and Biology Society 2004, 2004, vol. 2, pp. 32333236. [6] I. J. Cox, J. Kilian, T. Leighton, and T. Shamoon, Secure spread spectrum watermarking for multimedia, IEEE Trans. Image Process., vol. 6, no. 12, pp. 16731687, Dec. 1997. [7] F. Mintzer and G. W. Braudaway, If one watermark is good, are more better?, in Proc. IEEE Int. Conf. Acoustics, Speech, and Signal Processing 1999, Mar. 1999, vol. 4, pp. 20672069. [8] S. Stankovic, I. Djurovic, and I. Pitas, Watermarking in the space/spatial- frequency domain using two-dimensional radon-wigner distribution, IEEE Trans. Image Process., vol. 10, no. 4, pp. 650658, Apr. 2001.

Anda mungkin juga menyukai