Method and system for copy protection of images displayed on a computer monitor6922693Abstract A method for preventing copying a proprietary digital image data that is rendered within a window displayed on a computer monitor, including providing screen pixel data for rendering on a computer monitor, the screen pixel data including pixel data for a first window having proprietary digital image data therewithin, detecting that a second window is going to be displayed on the computer monitor, determining the position and size of the second window, determining, based on the position and size of the second window, a portion of the screen pixel data wherein the first window is going to be covered by the second window, and replacing the portion of the screen pixel data with substitute pixel data, prior to the second window being displayed. A system is also described and claimed. Claims 1. A method for preventing copying of proprietary digital image data that is displayed on a computer monitor, comprising: Description A Microfiche Appendix which includes one (1) sheet of microfiche with thirty (30) frames is incorporated herein by reference. concern technology for preventing unauthorized copying of images. Reference is now made to FIG. 2, which is an illustration of the results of a screen capture when proprietary digital image 100 is being displayed on the screen, and when copy protection technology from the above referenced patent applications is deployed. When a screen capture application tries to copy pixel data of proprietary digital image 100, watermarked image data is substituted for proprietary digital image 100. Using the technology described in the above-referenced patent applications, a web administrator can ensure that when a user tries to copy image 100 from within web page 150, another image, such as watermarked image 200, is substituted for image 100 prior to capture of image pixel data. Thus, although image 100 is displayed on a computer screen, a screen capture program will only be able to capture pixels of image 200. Reference is now made to FIG. 3, which is a prior art illustration of a transparent window 300 with a non-erase background. Although a typical Windows application immediately erases its main window, this is not necessary, and it is possible to write an application that does not erase its background. At first glance, window 300 appears to be transparent, with no background. However, this is not the case. Reference is now made to FIG. 4, which is a prior art illustration of transparent window 300 when it is moved to another location, revealing that it had copied a part of the screen display into its background when it was opened in its previous position. Indeed, as can be seen in FIG. 4, window 300 is not really transparent, but rather has a background that coincides with the pixel data from the position where it was originally opened. Reference is now made to FIGS. 5A-5D, which illustrate steps for creating an application having a window with a non-erase background, such as transparent window 300 (FIG. 3), using a Microsoft Visual C++ compiler wizard. FIGS. 5A-5D are representative images of user interface screens from Microsoft Visual C++ version 6. The first step is to create a new Microsoft Foundation Class (MFC) AppWizard (exe) project, as illustrated by element 510 in window 520 entitled "New" in FIG. 5A, used for creating new projects. After selecting such an MFC project, the user clicks "OK", then successively clicks on "Next>" and finally on "Finish", through to the end of the program. The next step is to add a new WM_ERASEBKGND Windows message handler to the View, as illustrated by element 530 in window 540 entitled "New Windows Message and Event Handlers for class CNoeraseView" in FIG. 5B. After adding such a message handler to the View, the user clicks on "Add". The next step is to click on "Edit", in order to modify the message handler code. Specifically, the user changes message handler code from that illustrated in FIG. 5C to that illustrated in FIG. 5D. The last step is to compile the application. When the application is run, it will generate a transparent window such as transparent window 300. The complete software listing for the application generated by the above steps is provided in Appendix A. Such a transparent window as transparent window 300 can be used to capture proprietary image data from a computer screen. Reference is now made to FIG. 6, which is a prior art illustration of use of a transparent window to copy proprietary digital image 100 from a web page 150. Transparent window 600 is sized and positioned so that it includes proprietary digital image 100 within its frame when it is opened. Window 600 appears to be transparent, and digital image 100 shows through its frame. However, the pixel data that shows through window 600 is actually copied into its background. Reference is now made to FIG. 7, which is a prior art illustration of a screen capture of a screen in which transparent window 600 has been moved to another location, when copy protection technology from the above referenced patent applications is deployed. As can be seen from FIG. 7, window 600 has copied proprietary digital image 100 into its background. As can be further seen from FIG. 7, the proprietary digital image was recognized as being within web page 150 and watermarked data was substituted therefor. However, it was not recognized as being within transparent window 600, and watermarked data was not substituted therefor. The screen capture succeeded in capturing proprietary image 100 within transparent window 600. Reference is now made to FIG. 8, which is a prior art illustration of a software paint program 800 that has copied the clipboard from FIG. 7 into its own window, thereby capturing proprietary digital image 100. At this stage, the user has unrestricted access to proprietary digital image 100. Thus it can be seen that use of a transparent window with a non-erase background works around security software that normally protects proprietary image data that is displayed from being captured, and, as such, it poses a threat to copy protection of image data over the Internet. SUMMARY OF THE INVENTION The present invention provides a method and system for preventing unauthorized copying of proprietary digital image data. There is thus provided in accordance with a preferred embodiment of the present invention a method for preventing copying of proprietary digital image data that is rendered within a window displayed on a computer monitor, including providing screen pixel data for rendering on a computer monitor, the screen pixel data including pixel data for a first window having proprietary digital image data therewithin, detecting that a second window is going to be displayed on the computer monitor, determining the position and size of the second window, determining, based on the position and size of the second window, a portion of the screen pixel data wherein the first window is going to be covered by the second window, and replacing the portion of the screen pixel data with substitute pixel data, prior to the second window being displayed. There is further provided in accordance with a preferred embodiment of the present invention a system for preventing copying of proprietary digital image data that is rendered within a window displayed on a computer monitor, including a computer monitor on which the screen pixel data is rendered, the screen pixel data including pixel data for a first window having proprietary digital image data therewithin, an event detector detecting that a second window is going to be displayed on the computer monitor, a window processor for determining the position and size of the second window, and for determining, based on the position and size of the second window, a portion of the screen pixel data wherein the first window is going to be covered by the second window, and a pixel processor for replacing the portion of the screen pixel data with substitute pixel data, prior to the second window being displayed. There is yet further provided in accordance with a preferred embodiment of the present invention a method for preventing copying of proprietary digital image data that is rendered within a window displayed on a computer monitor, including providing screen pixel data for rendering on a computer monitor, the screen pixel data including pixel data for a first window having proprietary digital image data therewithin, detecting that a second window is going to be displayed on the computer monitor, determining the position and size of the second window, determining, based on the position and size of the second window, a portion of the screen pixel data wherein the proprietary digital image data is going to be covered by the second window, and replacing the portion of the screen pixel data with substitute pixel data, prior to the second window being displayed. There is additionally provided in accordance with a preferred embodiment of the present invention a system for preventing copying of proprietary digital image data that is rendered within a window displayed on a computer monitor, including a computer monitor on which screen pixel data is rendered, the screen pixel data including pixel data for a first window having proprietary digital image data therewithin, an event detector detecting that a second window is going to be displayed on the computer monitor, a window processor for determining the position and size of the second window, and for determining, based on the position and size of the second window, a portion of the screen pixel data wherein the proprietary digital image data is going to be covered by the second window, and a pixel processor for replacing the portion of the screen pixel data with substitute pixel data, prior to the second window being displayed. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be more fully understood and appreciated from the following detailed description, taken in conjunction with the drawings in which: FIG. 1 is a prior art illustration of a proprietary digital image; FIG. 2 is a prior art illustration of the results of a screen capture when the proprietary digital image of FIG. 1 is being displayed on the screen; FIG. 3 is a prior art illustration of a transparent window with a non-erase background; FIG. 4 is a prior art illustration of the transparent window of FIG. 3 when it is moved to another location, showing that it had copied a part of the screen display into its background; FIGS. 5A-5D are prior art illustrations of steps for creating an application having a window with a non-erase background, using a Microsoft Visual C++ compiler wizard; FIG. 6 is a prior art illustration of use of a transparent window to copy the proprietary digital image of FIG. 1 from a web browser; FIG. 7 is a prior art illustration of a screen capture of a screen in which the transparent window of FIG. 6 has been moved to another location; FIG. 8 is a prior art illustration of a software paint program that has copied the clipboard from FIG. 7 into its own window, thereby capturing the proprietary digital image of FIG. 1; FIG. 9 is a simplified illustration of a computer system for implementing a preferred embodiment of the present invention; and FIG. 10 is an illustration of the appearance of a window with a non-erase background encompassing a portion of a proprietary digital image. LIST OF APPENDICES Appendix A is a software listing of prior art functions for creating an application having a window with a non-erase background, using a Microsoft Visual C++ compiler. DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT The present invention provides a method and system for preventing unauthorized copying of proprietary digital image data. Specifically, the present invention enables blocking use of windows with non-erase backgrounds for copying proprietary image data that is rendered on a computer monitor display screen. As described hereinabove with reference to FIGS. 1-8, a window with a non-erase background can be used in order to circumvent prior art copy protection systems, by capturing proprietary digital image data within a transparent area of such a window. Although prior art copy protection systems can protect against various methods of screen capture of pixel data rendered on a display screen, such as screen capture by use of a PrintScreen command, or screen capture by copying screen data into a clipboard, the prior art systems do not protect against screen capture through use of a window with a non-erase background. The present invention overcomes this limitation. Reference is now made to FIG. 9, which is a simplified illustration of a computer system 900 for implementing a preferred embodiment of the present invention. As shown in FIG. 9, computer system 900 includes an operating system 910, such as the Microsoft Windows operating system, which manages a plurality of software applications running on computer system 900. Proprietary pixels 920 from proprietary digital image 930 are rendered on a display screen 940 of a computer monitor 950, within an application window 960 such as a window of a web browser. Typically, pixel data rendered on display screen 940 is stored in a frame buffer 970 of a video card 980, and video card 980 rapidly generates pixel data for display screen 940 from the data in frame buffer 970. Typically the pixel data in frame buffer 970 is refreshed at rates of 30 frames per second or higher, and video card 970 accordingly refreshes display screen 940 at such rates. To protect proprietary image data, computer system 900 runs a copy protection application 990. Reference is now made to FIG. 10, which illustrates the appearance of a window 1020 with a non-erase background encompassing a portion of proprietary pixels 920 on display screen 940, such as window 600 that encompasses proprietary digital image 100 (FIG. 6). Window 1020 can appear, for example, as a window of a newly running application program, or as a window of a running application that was previously not visible on display screen or previously positioned elsewhere. Window 1020 can appear in response to a user's launching of a software application, or resizing of a window, or maximizing of a window that was previously minimized, or brining a window that was previously obscured behind window 960 in front of window 960. In a preferred embodiment of the present invention, a software application, such as copy protection application 990, can use Windows system-wide hooks to detect the appearance of window 1020 prior to its being rendered on display screen 940. Hooks are well known to those skilled in the art as a way to get information about operating system events. Specifically, with reference to the Windows operating system, copy protection application 990 preferably registers to have a Windows computer-based training (CBT) system-wide hook and a CallWndProc system-wide hook, which ensures that whenever operating system 910 receives a request for a new CBT event or a new WndProc event, copy protection application 990 is first notified prior to such event's occurrence. CBT events and WndProc events include opening of new windows, and appearances of windows on display screen 940. When operating system 910 receives a request to open window 1020, copy protection application 990 is first notified of such request, and intervenes prior to such request being effectuated by the system. With reference to FIG. 10, copy protection application 990 is notified about window 1020 prior to window 1020 being opened in display screen 940. In a preferred embodiment of the present invention, when copy protection application 990 receives notice of an event indicating that operating system 910 has been instructed to open window 1020, it determines an area of overlap between application window 960 and window 1020, based on the size and location of window 1020; namely, the hatched area of overlap 1030. Copy protection application 990 then replaces the pixel data in area of overlap 1030 with substitute pixel data, such as all white pixels, prior to the opening of window 1020. As such, when window 1020 does open, its background will only absorb the substitute pixel data in overlap area 1030, and not the proprietary pixel data. Thus proprietary pixels 920 remain copy protected. If window 1020 is subsequently moved, its background remains the same, as illustrated in FIG. 4, and thus its background continues to contain substitute pixel data instead of proprietary pixel data. However, there are several cases when window 1020 repaints its background, including: For each of these events, copy protection application 990 must be notified prior to the window event occurring, and it must replace pixel data in the appropriate overlap area with substitute pixel data. Otherwise, window 1020 will absorb proprietary pixels 920 into its background. It is not necessary for copy protection application 990 to replace pixel data with substitute pixel data unless window 1020 overlaps with application window 960. Moreover, it is not necessary to replace pixel data with substitute pixel data in the above cases (ii) and (iii) unless the additional portion of the background area of window 1020 after enlargement overlaps with application window 960. Similarly, it is not necessary to replace pixel data with substitute pixel data in the above case (iv), unless the portion of the background area of window 1020 that was covered by the other application window overlaps with application window 960. It is appreciated that an alternative embodiment of the present invention is to modify the area of overlap between window 1020 and proprietary pixels 920, namely, the doubly hatched area of overlap 1040, rather than the (larger) area of overlap 1030 between window 1020 and window 950. In this alternative embodiment it is not necessary to replace pixel data with substitute pixel data unless window 1020 overlaps with proprietary pixels 920. Moreover, it is not necessary to replace pixel data with substitute pixel data in the above cases (ii) and (iii) unless the additional portion of the background area of window 1020 after enlargement overlaps with proprietary pixels 920. Similarly, it is not necessary to replace pixel data with substitute pixel data in the above case (iv), unless the portion of the background area of window 1020 that was covered by the other application window overlaps with proprietary pixels 920.
|
Same subclass Same class Consider this |
||||||||||
