This application is based on and claims priority under 35 U.S.C. 119 from Japanese Patent Application No. 2007-269376 filed Oct. 16, 2007.
1. Technical Field
The present invention relates to an information processing apparatus and a computer readable medium.
2. Related Art
It is demanded that plural information processing devices which are in remote locations are connected via a communication line so as to share their screens in a conference system, and add and edit an object such as a character or a graphic on the sharing screens.
According to an aspect of the present invention, an information processing apparatus includes: an image acquirement unit that acquires an image displayed on a first screen; a change determining unit that determines change of a first object displayed on the first screen; an object acquirement unit that acquires a second object displayed on a second screen superposed and displayed on the first screen; a change unit that changes, on the basis of the change of the first object determined by the change determining unit, the second object acquired by the object acquirement unit; and a transmission unit that transmits the image acquired by the image acquirement unit and the change result by the change unit to another information processing apparatus.
Exemplary embodiment of the present invention will be described in detail based on the following figures, wherein:
With reference to drawings, a preferred embodiment for realizing the invention will be described below.
The module generally means software that is logically separable (computer program), and hardware parts. Accordingly, the module in the embodiment means not only a module in a computer program but also a module in hardware configuration. Therefore, the embodiment describes a computer program, a system and also a method. Though “store”, “let˜store”, and a word equivalent to these words are used for convenience of description, these words mean, in case that the embodiment is the computer program, “to let a storage device store” or “to perform such control as to let a storage device store”. Further, a module corresponds to a function in nearly one-to-one relation. Regarding mounting, one module may be configured by one program, plural modules may be configured by one program, and to the contrary, one module may be configured by plural programs. Further, the plural nodules may be executed by one computer, or one module may be executed by plural computers arranged in distribution environment or in parallel environment. Further, another module may be included in one module. Furthermore, “connection” includes physical connection and also logical connection (data delivery and reception, instruction, and reference relation between data).
Further, a system or an apparatus is configured by plural computers, hardware, a device, or the like which are connected by communication means such as a network (including one-to-one communication connection), or can be also implemented by one computer, hardware, a device, or the like.
The information processing apparatus and information processing program in the embodiment are used in a conference, and the apparatus includes a host PC 110, a server 120, a client 130A, and the like as shown in
Further, though the embodiment will be described with reference to a first screen, a second screen, and a third screen, these screens will be described later with reference to
Change of an object includes movement of an object, enlargement or reduction thereof, deformation thereof, deletion thereof, and the like. Here, the movement of the object will be mainly described. Further, hereinafter, an object to be operated is referred to as an object.
The host PC 110 includes a drawing object acquirement module 111, a moving area determining module 112, a screen capture module 113, a drawing object coordinate correcting module 114, a module for superimposition drawing 115, a data transmission/reception module 116, and an output module 117. The host PC 110 is a PC which a host of a conference mainly uses.
The moving area determining module 112 is connected to the screen capture module 113 and the drawing object coordinate correcting module 114, receives a mouse event (click of a mouse button or the like) or coordinates of a mouse cursor in the mouse event occurrence time in accordance with operator's operation, and determines movement of a first object displayed on a first screen. Next, the moving area determining module 112 delivers its determination result to the screen capture module 113 and the drawing object coordinate correcting module 114.
The drawing object acquirement module 111 is connected to the drawing object coordinate correcting module 114, receives a mouse event or coordinates of the mouse cursor in the mouse event occurrence time in accordance with operator's operation, and acquires a second object to be displayed on a second screen displayed in a superposed state on the first screen. Next, the drawing object acquirement module 111 delivers the acquired second object to the drawing object coordinate correcting module 114. Based on the distance from the first object to be determined by the moving area determining module 112, a second object associated with the first object may be acquired.
The screen capture module 113 is connected to the moving area determining module 112, the module for superimposition drawing 115, and the data transmission/reception module 116, and captures an image (screen image) displayed on the first screen. Here, to capture is to acquire a moving image and a static image displayed on the display as digital image, and referred to also as screen shot. The screen capture module 113 delivers the captured image to the module for superimposition drawing 115, and the data transmission/reception module 116.
The drawing object coordinate correcting module 114 is connected to the drawing object acquirement module 111, the moving area determining module 112, the module for superimposition drawing 115, and the data transmission/reception module 116. On the basis of the movement of the first object determined by the moving area determining module 112, the drawing object coordinate correcting module 114 corrects coordinates of the second object acquired by the drawing object acquirement module 111 thereby to move the second object. Next, the drawing object coordinate correcting module 114 delivers the movement result to the data transmission/reception module 116 and the module for superimposition drawing 115.
The module for superimposition drawing 115 is connected to the screen capture module 113, the drawing object coordinate correcting module 114, and the output module 117. The module for superimposition drawing 115 superposes (ORs) the second screen where the second object moved by the drawing object coordinate correcting module 114 exists on (with) the image (image on the first screen) captured by the screen capture module 113, thereby to perform drawing; and delivers its image to the output module 117. Further, the module for superimposition drawing 115 superposes the movement result of the object to be displayed on the second screen, which has been received by the data transmission/reception module 116 on the image captured by the screen capture module 113, thereby to perform drawing; and delivers its image to the output module 117.
The data transmission/reception module 116 is connected to the screen capture module 113 and the drawing object coordinate correcting module 114, and connected via the communication line 191 to the data transmission/reception module 121 of the server 120. The data transmission/reception module 116 sends the image acquired by the screen capture module 113 and the movement result (the image itself on the second screen, or the moving direction and the moving amount of the object displayed on the second screen) by the drawing object coordinate correcting module 114 to the clients 130A and 130N via the server 120. Further, the data transmission/reception module 116 receives a movement result of an object to be displayed on the second screen, which comes being sent from the clients 130A and 130N via the server 120.
The output module 117 receives an image from the module for superimposition drawing 115, and displays its image on a CRT or a liquid crystal screen of the host PC 110.
The server 120 includes the data transmission/reception module 121, a connection management module 122, a data management module 123, and a DB 124. In a conference system, the server 120 connects the host PC 110, the client 130A, and the client 130N, and controls data transmitter, destination of data distribution, and contents of data.
The data transmission/reception module 121 is connected to the connection management module 122 and the data management module 123, connected to the data transmission/reception module 116 of the host PC 110 via the communication line 192, connected to a data transmission/reception module 131A of the client 130A via the communication line 192, and connected to a data transmission/reception module 131N of the client 130N via the communication line 193. Namely, the data transmission/reception module 121 connects the host PC 110, the client 130A, and the client 130N.
The connection management module 122 is connected to the data transmission/reception module 121 and the DB 124. The connection management module 122 gives such an instruction to the data transmission/reception module 121 as to send the data received by the data transmission/reception module 121 to a destination of distribution (host PC 110, clients 130A and 130N) previously registered in the DB 124.
The data management module 123 is connected to the data transmission/reception module 121 and the DB 124. The data management module 123 lets the DB 124 store the data received by the data transmission/reception module 121 as historical data in the conference. Further, the data management module 123 may give an instruction to the data transmission/reception module 121 so as to transmit its historical data in accordance with a request from the host PC 110 which creates the minutes of the conference.
The DB 124 is connected to the connection management module 122 and the data management module 123, and stores management data such as which conference is to be performed in combination of which devices (host PC 110, and clients 130A and 130N), and data transmitted and received between the respective devices as the historical data.
The client 130A includes the data transmission/reception module 131A, a module for superimposition drawing 132A, a drawing object acquirement module 133A, and an output module 134A. The client 130A is, for example, a PC used by a participant of its conference. The client 130N has the similar configuration to that of the client 130A.
The data transmission/reception module 131A is connected to the module for superimposition drawing 132A and the drawing object acquirement module 133A, and also connected to the data transmission/reception module 121 of the server 120 via the communication line 192. The data transmission/reception module 131A receives, through the server 120, the image and the movement result of the object from the host PC 110. Thereafter, the data transmission/reception module 131A sends the received contents to the module for superimposition drawing 132A. In case that the object acquired by the drawing object acquirement module 133A is moved, the data transmission/reception module 131A sends information on the moved object to the host PC 110 via the server 120.
The module for superimposition drawing 132A is connected to the data transmission/reception module 131A, the drawing object acquirement module 133A, and the output module 134A, and draws the image received by the data transmission/reception module 131A on the first screen. Thereafter, on the basis of the movement result of the object received by data transmission/reception module 131A, the module for superimposition drawing 132A draws an image on the second screen. Alternatively, upon reception of the movement result of the object in the second screen from the drawing object acquirement module 133A, the module for superimposition drawing 132A draws an image on the second screen. Further, the module for superimposition drawing 132A superposes the first screen and the second screen to draw an image, and delivers its image to the output module 134A.
The drawing object acquirement module 133A is connected to the data transmission/reception module 131A and the module for superimposition drawing 132A. The drawing object acquirement module 133A, in accordance with operator's operation, receives a mouse event or coordinates of a mouse cursor when its mouse event occurs, and acquires the second object displayed on the second screen.
The output module 134A is connected to the module for superimposition drawing 132A. The output module 134A receives the image from the module for superimposition drawing 132A, and displays its image on a CRT or a liquid crystal screen of the client 130A.
Referring to
Working and operation in this system configuration example will be described.
Firstly, a desktop that is a first screen of the PC 210 is screen-captured, and next transmitted to the clients 230A and 230B via the server 20.
An object drawn on a second screen on the PC 210 is drawn on a second screen of the client 230A or the like so as to be located in the relatively same position as on-desktop of the PC 210. Namely, the desktop screen of the PC 210 is shared with each client 230A, 230B, so that their three persons look at the same desktop screen.
To the contrary, an object drawn on the second screen of the client 230A or the like is drawn on the second screen of the PC 210 so as to be located in the same position as the on-desktop of the PC 210. Hereby, the drawing object is symmetrically shared between the client 230A or the like and the PC 210.
On the other hand, though the client 230A or the like always shares the screen of the PC 210, it does not transmit its desktop screen to the PC 210. Therefore, the desktop screen is asymmetrically shared between the client 230A or the like and the PC 210.
The object drawn on the second screen of the client 230A is drawn on the second screen of the PC 210. On the PC 210, in case that a drawing instruction is given by operation of a drawing instruction area (drawing tool) that a third screen of the PC 210 includes, a mouse event is delivered to an application program displayed on the second screen. By changing a pixel value on coordinates which have received a drawing instruction by the mouse event generated on the second screen to a specified value, an object can be drawn. For example, by changing a pixel value showing colorlessness before drawing to a pixel value showing red color, a red dot can be drawn.
On the other hand, the client 230A does not include a third screen. Therefore, the mouse event is always delivered to the second screen. However, in order to give an instruction to an application program that generates the second screen, a drawing instruction area for receiving operator's operation is displayed on the second screen. Display of its drawing instruction area may be switched to non-display.
When an object is drawn by the mouse event on the PC 210, combination data of coordinates of pixels forming its object and its pixel value is transmitted as drawing object data to the server 220. The server 220 which has received its data transmits its data to the client 230A that is a destination of distribution previously registered. The client 230A which has received the data from the server 220, in accordance with its data, changes the pixel on the second screen of the client 230A to the specified value so that the pixel is in the relatively same position as the desktop of the PC 210. Hereby, the drawing object is drawn.
When an object is drawn on the second screen of the client 230A by the mouse event of the client 230A, combination data of coordinates of pixels forming its object and its pixel value is transmitted as drawing object data to the server 220.
The server 220 which has received its data transmits its data to the PC 210 previously registered.
The PC 210 which has received the data from the server 220, in accordance with its data, changes the pixel on the second screen of the PC 210 to the specified value, whereby, the drawing object is drawn.
Referring to
The screen of the host PC 110 is formed by superposition of the first screen 310, the second screen 320, and the third screen 330.
On the first screen 310, an object group managed by OS (Operating System), that is, an application window 311 displayed when an application program operates, and an icon, a folder, or a document file for referring to the application program are drawn. Since the first screen 310 is a screen for drawing the object group by the OS, it indicates usually a screen referred to as a desktop.
The second screen 320 has a transparent background. Accordingly, when the second screen 320 is superposed on the first screen 310, an object 321 drawn on the second screen 320 is seen so as to be drawn directly on the object group (application window 311) managed by the OS.
On the third screen 330, a drawing instruction area is arranged. The drawing instruction area includes at least a drawing ON button 331 and a drawing OFF button 332 for giving an instruction of a drawing mode or a non-drawing mode from the operator. Further, the drawing ON button 331 and the drawing OFF button 332, as long as they can indicate a binary state showing whether a drawing function is applied or not, may be represented by any graphics or characters, such as buttons, switches, sliders, check boxes, and ON/OFF of a pen. Further, the drawing ON button 331 and the drawing OFF button 332 may be switched to any key arranged on a keyboard or shortcut.
The third screen 330 is always superposed on the top of the first screen 310 and the second screen 320 (namely, superposed so as to enable always display). To the drawing instruction area, a color specifying tool, a pen thickness tool, a pen kind tool, and the like can be added according to specifications of a drawing application program.
In case that the drawing function is applied by pushing on the drawing ON button 331 on the third screen 330, the mouse event is delivered to an application program which is controlling the second screen 320. In case that the drawing function not be applied by pushing on the drawing OFF button 332 on the third screen 330, the mouse event is delivered to the OS or the application program which is controlling the first screen 310.
With reference to a flowchart shown in
First, examples to which this flowchart is applied will be described with reference to
As shown in
In this example, a subject of movement is an object which is drawn in a concentric ellipse 830 on the second screen 320. The concentric ellipse 830 is larger by d than an ellipse 820 circumscribing the application window 600. Accordingly, though the object 612 is the subject of movement, the object 613 is not the subject of movement.
Examples of processing which realize such the operations described with reference to
In a step S402, the screen capture module 113 takes screen capture of the first screen 310 and binarizes its image on the first screen 310 thereby to generate a binary image (hereinafter, this binary image is referred to as an image 1).
In a step S404, the moving area determining module 112 extracts, from the image 1, absolute coordinates and absolute size of the window area in the first screen 310. At this time, in case that the window cannot be extracted, a full screen is regarded as a window, and absolute coordinates and absolute size of its window are extracted.
In a step S406, the moving area determining module 112 monitors mouse events. Only in case that mouse events are generated in the window area of the image 1, the moving area determining module 112 gives such an instruction to the screen capture module 113 as to take screen capture of the first screen 310 at the point of time when the mouse events end. Thereafter, similarly to the operation in the step S402, the screen capture module 113 takes screen capture of the first screen 310 and binarizes its image on the first screen 310 to generate a binary image (hereinafter, this binary image is referred to as an image 2).
In a step S408, the moving area determining module 112 finds difference between the image 1 and the image 2.
In a step S410, the moving area determining module 112 extracts, from the difference obtained in the step S408, the moving amount Dv between the images 1 and 2.
In a step S412, the moving area determining module 112 determines whether Dv is not zero. Namely, the moving area determining module 112 determines whether change exists in the first screen 310. In case of YES in such the determination (In case that change exists), the processing proceeds to a step S414. In another case (In case that change does not exist), the processing ends (step S430).
In the step S414, the moving area determining module 112 determines whether the movement of object occurs outside the window, or whether the window itself moves. In case of YES in such the determination, the processing proceeds to a step S416; and in another case (in case that change exists inside the window), the processing proceeds to a step S418.
In the step S416, the drawing object coordinate correcting module 114 moves all the drawing objects on the second screen 320 by Dv. Thereafter, the data transmission/reception module 116 notifies the server 120 of the movement.
In processing in steps S418 to S428, objects associated with the window in the first screen 310 (object in the second screen 320) are founded. This processing will be described with reference to
In a step S418, the drawing object acquirement module 111 finds an ellipse 520 (including a circle) circumscribing a rectangular shape showing the area of the window 500 on the first screen 310. Namely, with a center of the window 500 as a center of the ellipse, such the circumscribing ellipse 520 as to surround the window 500 is found.
In a step S420, the drawing object acquirement module 111 finds, on the second screen 320, a concentric ellipse 530 in which a previously set d is added to the circumscribing ellipse 520. Namely, the concentric ellipse 530 that has a center in the same position as the position of a center of the circumscribing ellipse 520 and is larger by d than the ellipse 520 is found.
In a step S422, the drawing object acquirement module 111 selects one object drawn on the second screen 320. In case of
In a step S424, the drawing object acquirement module 111 determines whether or not a part of the object 510 selected in the step S422 is included in the area of the concentric ellipse 530. In case of YES (In case that the object exists near the window) in such the determination, the processing proceeds to a step S426; and in another case (in case that the object does not exist near the window), the processing proceeds to a step S428. In case of
In the step S426, the drawing object coordinate correcting module 114 moves the selected drawing object on the second screen 320 by Dv. Thereafter, the data transmission/reception module 116 notifies the server 120 of the movement.
In a step S428, the drawing object acquirement module 111 determines whether or not a next object exists. In case of YES (In case that the remaining objects exist) in such the determination, the processing returns to the step S424; and in another case (in case that other object to be determined do not exist), the processing ends (step S430).
With reference to a flowchart shown in
First, the concrete processing example will be described with reference to
An object 1010 that is concerned with a window 1000 in the first screen 310 can be selected based on the processing by the flowchart shown in
In a step S902, the drawing object acquirement module 111 finds an ellipse 1020 circumscribing a rectangular shape circumscribing the object 1010 determined to be located near the window 1000 on the second screen 320.
In a step S904, the drawing object acquirement module 111 finds, on the second screen 320, a concentric ellipse 1030 in which a previously set dA is added to the circumscribing ellipse 1020. Namely, the concentric ellipse 1030 that has a center in the same position as the position of a center of the circumscribing ellipse 1020 and is larger by dA than the ellipse 1020 is found.
In a step S906, the drawing object acquirement module 111 selects one object drawn on the second screen 320. In case of
In a step S908, the drawing object acquirement module 111 determines whether or not a part of the object 1011 selected in the step S906 is included in the area of the concentric ellipse 1030. In case of YES (In case that an object exists near the object) in such the determination, the processing proceeds to a step S910; and in another case (in case that an object does not exist near the object), the processing proceeds to a step S912. In case of
In the step S910, the drawing object coordinate correcting module 114 moves the selected drawing object on the second screen 320 by Dv. Thereafter, the data transmission/reception module 116 notifies the server 120 of its movement.
In the step S912, the drawing object acquirement module 111 determinations whether or not a next object exists. In case of YES (In case that the remaining objects exist) in such the determination, the processing returns to the step S908; and in another case (in case that other objects to be determined do not exist), the processing ends (step S914).
A computer (the host computer PC110, the server 120, the client 130A, or the like) by which the program in the embodiment is executed is, as shown in
Regarding a computer program of the aforesaid embodiment, a system having this hardware configuration is caused to load the computer program that is the software, and the software resource and the hardware resource cooperate with each other thereby to implement the aforesaid embodiment.
The hardware configuration shown in
In the embodiment, in case that an object in the second screen 320 which is associated with the object in the first screen 310 is selected, the example using the circumscribing ellipse and the concentric ellipse has been described. However, an object in the second screen 320 which exists within a predetermined distance from the outer circumference of the object in the first screen 310 may be selected.
Further, in the embodiment, though movement is indicated as a change example of the first object, enlargement, reduction, deformation, or deletion may be used. In case of the enlargement, the reduction, or the deformation, in accordance with magnification or deformation processing for the first object, the second object (including the third object) is enlarged, reduced, or deformed. Further, in case of deletion, the second object is also deleted.
Further, the above-described program may be provided in a storage form in a recording medium, or its program may be provided by a communication means. In this case, the above-described program may be grasped as an invention of a “computer readable recording medium storing a program”.
The “computer readable recording medium storing a program” means a recording medium which can read data by a computer, is used for installation, execution, and distribution of a program, and stores therein a program.
The recording medium is, for example, a digital versatile disc (DVD), in which there are [DVD-R, DVD-RW, DVD-RAM, and the like] formulated by DVD Forum, [DVD+R, DVD+RW, and the like] formulated by DVD+RW, and a compact disc (CD). Specifically, there are a read-only memory (CD-ROM), a CD recordable (CD-R), a CD rewritable (CD-RW), a magneto-optical disc (MO), a flexible disc (FD), a magnetic tape, a hard disk, a read-only memory (ROM), an electrically erasable and programmable read-only memory (EEPROM), a flash memory, a random access memory (RAM), and the like.
Further, the program or its part may be stored in the recording medium to be retained or distributed. Further, the program or its part may be transmitted by means of communication such as a wire network used in a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), Internet, an intranet and an extranet, or a wireless communication network; or by means of a transmission medium in combination of these networks. Furthermore, the program or its part may be carried by a carrier.
Further, the program may be a part of another program, or may be stored in the recording medium together with a separate program. Further, the program may be recorded in the plural recording mediums in a division manner. Further, the program may be stored in any form such as in a compression form or in encryption as long as it is recoverable.
The foregoing description of the embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2007-269376 | Oct 2007 | JP | national |