System and method for manipulating digital images on a computer display

Information

  • Patent Grant
  • 9013509
  • Patent Number
    9,013,509
  • Date Filed
    Thursday, September 11, 2008
    16 years ago
  • Date Issued
    Tuesday, April 21, 2015
    9 years ago
Abstract
The present invention provides a user interface for manipulating digital images. The interface includes a display arranged to display at least one digital image. The at least one image has a front side and at least one opposing side displayable to a user, the front and each one of the opposing sides having at least one detection portion. The detection portion is arranged to detect a manipulation request by the user and, on detection of the request, initiate a routine whereby a displayed side is rotated from view and at least one opposing side is displayed.
Description
TECHNICAL FIELD

The present invention relates to a system and method for manipulating digital images on a display of a computing device.


BACKGROUND OF THE INVENTION

Computer users often find the process of inputting and manipulating computer data to be tedious and difficult. One reason for this is that computer interfaces are very artificial and require complex operations to achieve a desired outcome.


Most computer users will, over time, become familiar with any interface. However, there remain those users who experience difficulty irrespective of how much interaction they have with the interface. For example, computer users who have had little training with computers, or those who access their computer infrequently, can find it difficult to remember what input is required to have the computer perform a desired task. This is particularly the case with manipulating objects such digital images which are displayed on the computer screen. Digital images often have many layers of abstraction, requiring the user to work with many layers and be very coordinated and precise with the computer interface in order to manipulate the image accurately and correctly.


SUMMARY OF THE INVENTION

In a first aspect the present invention provides a user interface for manipulating digital images comprising a display arranged to display at least one digital image, the at least one image having a front side and at least one opposing side displayable to a user, the front and each one of the opposing sides having at least one detection portion, wherein the detection portion is arranged to detect a manipulation request by the user and, on detection of the request, initiate a routine whereby a displayed side is rotated from view and at least one opposing side is displayed.


In an embodiment of a user interface the detection portion is a defined segment of one of the front and each one of the opposing sides.


In an embodiment of a user interface the rotation occurs only if the manipulation request is sustained by the user during the execution of the routine.


In an embodiment, the routine provides feedback to the user during the execution of the routine.


In an embodiment, the feedback is an animation of the rotation of the image.


In an embodiment, the animation depicts the rotation of the image on an axis that is perpendicular to the surface


In an embodiment, the manipulation request is one of a hand gesture and a movement of a stylus, pen or electronic peripheral.


In an embodiment, the manipulation request comprises a user input including one of a hand gesture, movement of a stylus, pen and electronic peripheral input to the user interface.


In an embodiment the manipulation request is a rotation movement performed by the user input.


In an embodiment each one of the opposing sides may display a representation of a digital object.


In an embodiment the digital object is an audio file.


In an embodiment the representation is an icon associated with the digital object.


In accordance with a second aspect the present invention provides a method for manipulating digital images comprising: the steps of displaying at least one digital image on a display, rendering the at least one image to have a front side and at least one opposing side, displaying the front side on the display, placing at least one detection portion on the front and each one of the opposing sides, detecting a manipulation request by the user with the detection portion and, on detection of the request, initiate a routine whereby a displayed side is rotated from view and at least one opposing side is displayed.


In accordance with a third aspect the present invention provides a system for manipulating digital images comprising a computer unit, the computer unit having an interface according to the first aspect.


In accordance with a fourth aspect the present invention provides a computer program comprising at least one instruction for controlling a computer system to implement a user interface according to the first aspect.


In accordance with a fifth aspect the present invention provides a computer program comprising at least one instruction for controlling a computer system to implement a method according to the second aspect.


In accordance with a sixth aspect the present invention provides a computer readable medium providing a computer program in accordance with any one of the fourth or fifth aspects.





BRIEF DESCRIPTION OF THE DRAWINGS

Notwithstanding any other forms which may fall within the scope of the present invention, a preferred embodiment will now be described, by way of example only, with reference to the accompanying drawings in which:



FIG. 1 is a schematic of a computer system utilised to implement an embodiment of the present invention;



FIGS. 2
a and 2b are flow diagrams showing method steps for flipping and attaching objects to a digital image, in accordance with an embodiment of the present interface; and



FIGS. 3A to 3D are a series of screen shots of a flipping animation, in accordance with an embodiment of the present invention.





DETAILED DESCRIPTION

With reference to FIG. 1, there is shown a computing system 100 arranged to implement a method in accordance with an embodiment of the present invention. The system 100 is in the form of a personal computer (hereafter “tabletop computer”) including a surface-mount display 102. The display 102 is arranged to display a user interface 104 and receive user input for manipulating digital images and other information displayed thereon. The digital images have a front side and at least one opposing side displayable to a user of the tabletop computer 100. The front and opposing sides have at least one detection portion which is arranged to detect a manipulation request by the user. On detection of the request, the tabletop computer 100 initiates a routine whereby a currently displayed side of the image is rotated from view and at least one opposing side is displayed.


To achieve the aforementioned functionality, the tabletop computer 100 comprises computer hardware including a motherboard 101, central processing unit 103, read only memory (ROM) 105, random access memory (RAM) 107, and input/output devices such as disk drives 109, Ethernet ports 111, etc. There may also be provided a plurality of communication links 113 which connect to one or more other computing devices, such as servers, personal computers, terminals, wireless or handheld computing devices etc. At least one of the plurality of communications links may be connected to an external computing network through a telephone line or other type of communications link.


The tabletop computer 100 also includes a display 102 including a projector 117 connected to the tabletop computer 100. The projector 117 projects the user interface 104 onto a surface 119. The display 102 also includes a sensor 118 capable of detecting a user input for manipulating objects displayed on the user interface 104. In an embodiment, the user input may comprise hand movements (or gestures) and/or input from a stylus or pen. In addition to the hardware, the tabletop computer 100 includes an operating system (such as the Microsoft Windows™ XP operating system, which is provided by Microsoft Corporation) that resides on the hard disk and which co-operates with the hardware to provide an environment in which the software applications can be executed. In this regard, the tabletop computer 100 is loaded with a detection module which detects manipulation requests input by a user.


In the embodiment described herein, the digital image is in the form of a digital photograph having two displayable sides, akin to a physical photograph. Manipulation requests include, among others, requests to move or drag the image from one part of the user interface 104 to another, as well as requests to “flip” the digital image so that another side of the image may be presented to the user. To carry out a flipping action, there is provided a flipping module which co-operates with the user interface 104 and the sensor 118. Responsive to receiving a flipping request, the flipping module carries out an animation process whereby the digital image is animated on the display as if it were rotated from one view such that the displayed view is hidden and the opposing side of the digital image is displayed. This rotation may be on an axis perpendicular to any straight edge of the digital image, or it may be a rotation that may be a combination on both the perpendicular and parallel axis to any straight edge of the digital image. This rotation provides a visual effect akin to a physical card, photo or object being turned over by hand. An attachment module is also provided by the tabletop computer 100 which allows data objects, including, but not limited to files such as audio or text files, or other digital data to be associated with the flipped side of the digital image. In such an embodiment, the user can, for example, attach a media file to the digital image which can be executed once the image has been flipped. This functionality provides the user with a familiar experience as it allows the user to virtually flip an image, using the same action and skill as would be required to interact with physical objects.


Referring to FIG. 2a, there is provided a flow chart which outlines a methodology in accordance with an embodiment of the present invention. At step 200, the software application in accordance with an embodiment of the invention detects (periodically) the presence of a flip request. If a flip request is detected, step 202 is invoked and a flipping action is initiated. Once the flipping action at step 202 has been initiated, a determination is made as to whether the flipping action is sustained (step 204). If the flipping action is sustained, step 206 is invoked and the flipping action is completed. After the flipping action is completed, the method returns to awaiting the next flip request (step 200).


Conversely, if the flipping action is not sustained, the methodology progresses to step 208 where a partial flipping action is initiated. Once the partial flipping action is completed, the methodology returns to step 200, namely awaiting a flip request.


In more detail, the detection module detects a user input request to flip the digital image. The flip request is provided by the user in the form of a hand movement and/or the movement of a stylus, pen or other electronic peripheral device. To detect a flip request, the detection module determines the location of user input touch points received on the user interface 104 by monitoring for such touch points with the sensor 118. The touch points are calculated by determining absolute values of the components of the image coordinates of the touch points. If the detection module determines that one or more touch points are located in the prescribed detection portions (also referred to as “hot spots”), the determination module instructs the flipping module to initiate the flipping action.


The hot spots are configurable based on user behaviour or hardware configuration. In an embodiment, the hot spots include both the top-left corner and bottom-right corner of the digital image. To instruct a flipping action, the user simultaneously touches the hot spots using their thumb and middle finger, and carries out a pinching action such that the thumb and middle finger are brought together. In this manner, the user input is effectively the same action as the action that the user would perform to flip a physical photograph. A similar movement may also be performed by using a stylus or pen, where the user first touches a hot spot using the stylus, and without lifting the stylus, moves the stylus towards the other hot spot, thereby simulating the flipping hand gesture. As a way of illustrating an implementation of this embodiment, without limitation, a listing of code for one method of implementation is provided in Annexure 1.


Still referring to FIG. 2a, the flipping module receives the arguments of pixel coordination (x,y) on the user interface 104 corresponding to the control point used for the flip action 202 and the coordinates are converted using the cached inverse transformation matrices used to position the object being flipped in the virtual environment. The x coordinate is normalised to make it comparable with the y coordinate so as to give equal weighting to determine the initial direction of the flip. As a way of illustrating an implementation of this embodiment, without limitation, a listing of code for one method of implementation is provided in Annexure 2.


The direction of the flip is determined by the location of the initial control point of the digital image. As discussed earlier, each control point has a pixel coordination (x,y). In determining the direction of flip, if the user only touches one control point the absolute values of each x and y components are considered, and the largest component (i.e. the component with the largest distance from the centre of the image) determines the direction of the flip. In the case where the user touches a plurality of points on the digital image, the average of all coordinates of the control points is first calculated and the resultant coordinate is utilised to determine the largest component and therefore the direction of flip. The distance to flip is twice the position component (as points initially extend from −0.5 to 0.5), so the distance lies in the range [−1.0, 1.0]. The angle to flip is the arccosine of the distance. The module maintains the state to continue a flip in the same direction once initiated, and to determine whether the module is flipping to the reverse side, or back to the “front” side. The flipping of the image itself occurs in the draw procedure and this communicates with the user interface to animate the flipping process. Unlike traditional computer user interfaces, whereby the feedback is lacking, delayed, unrealistic or non existent, this function allows a feedback to be provided to the user thereby enhancing the user's experience in using the interface. In other words, the provision of feedback by detecting the direction of flipping or the cancellation of a flip assists in further teaching the user in using the interface by providing real time feedback for the user, much like the user's physical interaction with a real life environment. As a way of illustrating an implementation of this embodiment, without limitations, a listing of code for one method of implementation is provided in Annexure 3.


Referring now to FIG. 2b, there is described a methodology which an object may be attached to the “back” (i.e. other side) of a flipped image. At step 210, a determination is made as to whether a user has initiated an attachment request. If an attachment request is initiated, the system proceeds to determine whether the image has been flipped (step 212). If the image has been flipped, the object is attached (step 214). Thereafter, the methodology returns to the periodic determination of whether an attachment request has been initiated.


Conversely, if the image is not flipped, an attachment cannot be made to the object and the methodology returns to step 210, namely a periodic determination of whether a new attachment request has been made.


In more detail, whenever a digital object is moved on the user interface 104, a checklink function selects the object directly below the touch point on the object being moved. If there is a digital image present and the image has been flipped by the flip module, then an attachment occurs between the digital data and the image. Once the digital objects are attached or released from an attachment, the objects are subject to a layout algorithm. Two example layout algorithms are a “FlowLayout” and “Space-Filling Thumbnails” layout, but potentially any layout can be used including a “Stacked Layout” which stacks objects of the same “type” in a pile. This embodiment further enhances the user's experience with the user interface 104 as it allows the user to actively add attachments such as messages, information, clips, descriptions or other items to the images. The attachments are easily accessible, removable and manageable even for those without computing skills, as the graphical display and the structure of the presentation in the embodiment provides an easy file management of the objects. Upon the addition or removal of any attachments, the user can simply “flip” the image over again and thereby allow for easy storage or filing. The entire process of image flipping, object attachment and filing is, on traditional computer interface, a difficult and cumbersome task. However in this presently described embodiment, the entire process can be achieved with normal intuitive actions that a normal user, (particularly a user unfamiliar with computers) would be able to complete with little training. As a way of illustrating an implementation of the embodiment, without limitation, a listing of code for one method of implementation is provided in Annexure 4.


EXAMPLE

With reference to FIGS. 3A to 3D, a user chooses the image 300 that they wish to manipulate. The user may then touch the digital image 300 projected onto the table as if the user were manipulating a real object. The user may bring the digital image closer or further away, and move the image to any new position on the user interface 102.


To flip the digital image 300, the user simulates a flipping gesture (as described above) over the digital image 300 using the prescribed areas 302. In an embodiment, this is achieved by the user placing two fingers on the image, one each in adjacent photo corners. The user than drags two fingers across the image to flip it, in one embodiment, a “corner” triangle is rendered on the edges of the digital image and a user's finger or stylus or pen when placed in a “corner” triangle will begin a flip action, and as it is dragged over the image, the image is seen to rotate on a horizontal axis, perpendicular to the straight line joining the two edges. If the flipping movement from the user is withdrawn less than half way during the flipping of the image, the image will return to its previous state as the flipping movement is cancelled. During the flipping action, the image 300 may be displayed as an animation of a simulated turning movement as if they were physical photographs placed on a table (see FIGS. 3B & 3C).


In FIG. 3D, the flipped image is rendered with a semi transparent white colouring 304, although in another embodiment, the rendering can be completed in different graphical details as to portray the image as having been flipped 306. The image once flipped behaves differently when other items on the display are dragged over it. The user may attach various digital data to the image once it is flipped. Such data may include, but not limited to audio files, texts, multimedia files or other digital data. The user can initiate an attachment of digital data by selecting the digital data object and positioning this object over a flipped image. This can be done by either the use of a menu or with a dwell motion when the object is over the flipped image. Once the attachment is made a circle with a number appears on the back of the flipped image.


The user may record pieces of audio objects and attach these objects onto the image, which will be displayed as a circle on the image. The audio links may be deleted by dragging the circle out of the image, thereby breaking this link.


Although the display described above was in the form of a surface displaying a projected image, it will be understood that the display can take any form. For example, the display may take the form of a touch-screen display or may simply be a conventional display where inputs to the display are received by traditional inputs such as a keyboard and mouse.


Although not required, the embodiments described with reference to the Figures can be implemented via an application programming interface (API) or as a series of libraries, for use by a developer, and can be included within another software application, such as a terminal or personal computer operating system or a portable computing device operating system. Generally, as program modules include routines, programs, objects, components, and data files that perform or assist in the performance of particular functions, it will be understood that the functionality of the software application may be distributed across a number of routines, objects and components to achieve the same functionality as the embodiment described and the broader invention claimed herein. Such variations and modifications are within the purview of those skilled in the art.












ANNEXURE 1


Procedure for deciding whether to initiate a flip















1 bool Image::flipSelected( ) {


2   GLfloat x = fabsf(currMPos.x), y = fabsf(currMPos.y);


3   return !inBlackhole &&


4     (y − x > RConfig::CORNER_PROP ||


5      x − y > 0.5*aspect − 0.5 + RConfig::CORNER_PROP);


6 }



















ANNEXURE 2


Procedures for flipping an object, given the current contact position


on the screen















 1 bool Image::flipto(int screen_x, int screen_y) {


 2   P3<GLfloat> avgPos;


 3   //determine in texture coords where the control point is


 4   setObject(avgPos, screen_x, screen_y, true);


 5   avgPos.x /= aspect; //normalise between 0 and 1


 6   //(we always flip along the bigger direction)


 7


 8   float cosval, dist;


 9   if (!flipping) { //not already flipping


10     xflip = fabs(avgPos.y) > fabs(avgPos.x);


11     dist = xflip ? avgPos.y*2.0 : avgPos.x*2.0;


12     backflip = dist < 0;


13     wasflipped = flipped;


14     flipping = true;


15   } else {


16     dist = xflip ? avgPos.y*2.0 : avgPos.x*2.0;


17   }


18


19   //now the flipping state toggles if the distance has changed in


    sign


20   flipped = wasflipped != (backflip != dist < 0);


21


22   //determine the angle to rotate the image


23   cosval = fabs(dist);


24   if (cosval < 1.0) {


25     flipangle = acosf(cosval); //between 0 and 90


26


27     //now, if we started on the “wrong” side, we rotate the other


28     //way we also do a magical flip at the centre if flipped


29     if (xflip == backflip)


30       flipangle *= −1.0;


31


32     //now we are here, whenever we have a change from


33     // the start, we want to subtract from 180 degrees


34     if (flipped != wasflipped)


35       flipangle = −flipangle;


36


37   } else {


38     //dist is > 1.0, so touch point moved away - don't flip


39     flipangle = 0.0;


40   }


41


42   pc.makeDirty( );


43   return true;


44 }



















ANNEXURE 3

















45 void Image::drawPartialFlip( ) {



46   glPushMatrix( );



47   glRotatef(flipangle*RAD2DEG,



48        xflip ? 1.0 : 0.0,



49        xflip ? 0.0 : 1.0,



50        0.0);



51   If (flipped) {



52     drawReverse( );



53     //also draw the back if we are flipping



54     if (flipping) {



55       glRotatef(180,



56           xflip ? 1.0 : 0.0,



57           xflip ? 0.0 : 1.0,



58           0.0);



59       glCallList(*model);



60     }



61



62   } else {



63     drawTexture( );



64     if (flipping) {



65       glRotatef(180,



66           xflip ? 1.0 : 0.0,



67           xflip ? 0.0 : 1.0,



68           0.0);



69       drawReverse( ); /* if rendering ?? */



70     }



71   }



72   glPopMatrix( );



73 }




















ANNEXURE 4


Procedure, called each time an object is moved, to check whether


it should be attached to another object















 1 void Resource::checkLink( ) {


 2   // get the topmost object in the environment at the ’touch’


    location


 3   P3<int> scr(pc.getScreen( ) + clickPos);


 4   PResource top = env->selectTop(scr.x, scr.y, this, true);


 5


 6   PResource cur = 0; // current parent, if any


 7   if (link)


 8     cur = link->getParent( );


 9 


10   if (cur != top && canDetach( )) { //if changed


11     // remove old dependencies, if any


12     removeDependenciesOnParent( );


13


14     if (top && top->isFlipped( )) {


15       if (canLink(top) && top->canLink(this)) {


16         Layout *lay = top->getChildLayout( );


17         /* if new parent has a layout manager, add to


          that */


18         if (lay) {


19           lay->add(this);


20           lay->layout( );


21           link = lay;


22         } else { /* else use “basic” linking method */


23           link = PDAdapter::link(this, top);


24         }


25         pushFlasher(top); // give feedback


26       }


27     }


28   }


29 }








Claims
  • 1. A method for manipulating digital images comprising: displaying a user interface, the user interface comprising a display arranged to display at least one digital image, the at least one image having a front side and at least one opposing side displayable to a user, the front and each one of the opposing sides having at least one detection portion, wherein the detection portion is arranged to detect a manipulation request by the user;on detection of the request, initiating a routine whereby a displayed side is at least partially rotated from view and the at least one opposing side is at least partially displayed, wherein: the at least one detection portion is a defined portion of the front side, anda digital file that is dragged over the at least one opposing side is attachable to the image, but only after the rotation;receiving an attachment request to attach the digital file to the at least one image, wherein the attachment request comprises a user input of positioning the digital file over the at least one opposing side of the at least one image and attaching the digital file to the at least one opposing side of the at least one image in dependence on the at least one image having been rotated and the at least one opposing side being displayed;receiving an execution request to execute the attached digital file; andexecuting the attached file in dependence on the at least one image having been rotated.
  • 2. A method for manipulating digital images comprising: displaying a user interface, the user interface comprising a display arranged to display at least one digital image, the at least one image having a front side and at least one opposing side displayable to a user, the front side and each one of the opposing sides having at least one detection portion, wherein the detection portion is arranged to detect a manipulation request by the user;on detection of the manipulation request, initiating a routine whereby a displayed side is represented to at least partially rotate from view, and at least one opposing side is at least partially displayed, wherein the different sides of the image have different interaction behaviours with other digital items wherein a digital file that is dragged over the at least one opposing side is attachable to the image, but only after the rotation;receiving an attachment request to attach a digital file to the at least one digital image, wherein the attachment request comprises a user input of positioning the digital file over the at least one opposing side of the at least one image and attaching the digital file in dependence on the at least one image having been rotated and the at least one opposing side being displayed;receiving a execution request to execute the attached digital file; andexecuting the attached file in dependence on the at least one image having been rotated.
  • 3. A method according to claim 2, wherein rotation occurs only if the manipulation request is sustained by the user during the execution of the routine.
  • 4. A method according to claim 2, wherein the routine provides feedback to the user during the execution of the routine.
  • 5. A method according to claim 4, wherein the feedback is an animation of the rotation of the at least one image.
  • 6. A method according to claim 5, wherein the animation depicts the rotation of the at least one image on an axis that is perpendicular to the display.
  • 7. A method according to claim 2, wherein the manipulation request comprises a user input including one or more of a hand gesture and movement of a stylus, pen or electronic peripheral input to the user interface.
  • 8. A method according to claim 7, wherein the manipulation request is a rotation movement performed by the user.
  • 9. A method according to claim 2, wherein each one of the opposing sides may display a representation of a digital object.
  • 10. A method according to claim 9, wherein the digital object is an audio file.
  • 11. A method according to claim 10, wherein the representation is an icon associated with the digital object.
  • 12. A method according to claim 11 wherein the initial direction of rotation is determined in dependence on the manipulation request.
  • 13. A system for manipulating digital images comprising a computer unit, the computer unit implementing a user interface according to claim 2.
  • 14. One or more storage device having stored thereon computer-executable instructions, which, when executed by at least one processor, implement the method of claim 2.
  • 15. A method according to claim 2 wherein the initial direction of rotation is determined in dependence on the manipulation request.
  • 16. A method according to claim 2 wherein the opposing side is rendered to portray the image as having been rotated.
  • 17. A method according to claim 2 wherein the opposing side is rendered with semi-transparent white coloring.
  • 18. A method for manipulating digital images comprising the steps of: displaying at least one digital image on a display;rendering the at least one image to have a front side and at least one opposing side;displaying the front side on the display;placing at least one detection portion on the front side and each one of the opposing sides;detecting a manipulation request by a user with the detection portion;on detection of the manipulation request, initiating a routine whereby a displayed side is at least partially rotated from view and the at least one opposing side is at least partially displayed, wherein: the detection portion is a defined portion of the front side, anda digital file that is dragged over the at least one opposing side is attachable to the image, but only after the rotation;receiving an attachment request to attach the digital file to the at least one image wherein the attachment request comprises a user input of positioning the digital file over the image and attaching the digital file to the at least one opposing side of the at least one image in dependence on the at least one image having been rotated and at least one opposing side being displayed;receiving an execution request to execute the attached digital file; andexecuting the attached file in dependence on the at least one image having been rotated.
  • 19. A method for manipulating digital images comprising: displaying a user interface, the user interface comprising a display arranged to display at least one digital image, the at least one image having a front side and at least one opposing side displayable to a user, the front side and each one of the opposing sides having at least one detection portion, wherein the detection portion is arranged to detect a manipulation request by the user;on detection of the request, initiating a routine whereby a displayed side is represented to at least partially rotate from view, and the at least one opposing side is at least partially displayed, wherein the manipulation request is a rotation movement performed by the user wherein a digital file that is dragged over the at least one opposing side is attachable to the image, but only after the rotation;receiving an attachment request to attach a digital file to the at least one image, wherein the attachment request comprises a user input of positioning the digital file over the at least one opposing side of the at least one image and attaching the digital file to the at least one opposing side of the at least one image in dependence on the at least one image having been rotated and the at least one opposing side being displayed; andreceiving an execution request to execute the attached digital file; andexecuting the attached file in dependence on the at least one image having been rotated.
  • 20. A method for manipulating digital images comprising the steps of: displaying at least one digital image on a display;rendering the at least one image to have a front side and at least one opposing side;displaying the front side on the display;placing at least one detection portion on the front side and each one of the opposing sides;detecting a manipulation request by the user with the detection portion;on detection of the request, initiating a routine whereby a displayed side is represented to at least partially rotate from view, and at least one opposing side is at least partially displayed, wherein the manipulation request is a rotation movement performed by the user, wherein a digital file that is dragged over the at least one opposing side is attachable to the image, but only after the rotation;receiving an attachment request to attach a digital file to the at least one image, wherein the attachment request comprises a user input of positioning the digital file over the at least one opposing side of the at least one image and attaching the digital file to the at least one opposing side of the at least one image in dependence on the at least one image having been rotated and at least one opposing side being displayed;receiving an execution request to execute the attached digital file; andexecuting the attached file in dependence on the at least one image having been rotated.
  • 21. A method for manipulating digital images comprising the steps of: displaying at least one digital image on a display;rendering the at least one image to have a front side and at least one opposing side;displaying the front side on the display;placing at least one detection portion on the front side and each one of the opposing sides;detecting a manipulation request by the user with the detection portion;on detection of the manipulation request, initiating a routine whereby a displayed side is represented to at least partially rotate from view, and at least one opposing side is at least partially displayed, wherein the different sides of the image have different interaction behaviours with other digital items, wherein a digital file that is dragged over the at least one opposing side is attachable to the image, but only after the rotation;receiving an attachment request to attach the digital file to the at least one image, wherein the attachment request comprises a user input of positioning the digital file over the at least one opposing side of the at least one image and attaching the digital file to the at least one opposing side of the at least one image in dependence on the at least one image having been rotated and the at least one opposing side being displayed;receiving an execution request to execute the attached digital file; andexecuting the attached file in dependence on the at least one image having been rotated.
  • 22. A method according to claim 21, wherein rotation occurs only if the manipulation request is sustained by the user during the execution of the routine.
  • 23. A method according to claim 21, wherein feedback is provided by the routine to the user during the execution of the routine.
  • 24. A method according to claim 23, wherein the feedback is an animation of the rotation of the at least one image.
  • 25. A method according to claim 24, wherein the animation depicts the rotation of the at least one image on an axis that is perpendicular to the display.
  • 26. A method according to claim 21, wherein the manipulation request comprises a user input including one or more of a hand gesture and movement of a stylus, pen or electronic peripheral input to the user interface.
  • 27. A method according to claim 26, wherein the manipulation request is initiated by a rotation movement performed by the user input.
  • 28. A method according to claim 21, wherein each one of the opposing sides may display a representation of a digital object.
  • 29. A method according to claim 28, wherein the digital object is an audio file.
  • 30. A method according to claim 29, wherein the digital object is an image file.
  • 31. A method according to claim 29, wherein the representation is an icon associated with the digital object.
  • 32. One or more storage device having stored thereon computer-executable instructions, which, when executed by at least one processor, implement the method of claim 21.
  • 33. A method according to claim 21 wherein the opposing side is rendered to portray the image as having been rotated.
  • 34. A method according to claim 21 wherein the opposing side is rendered with semi-transparent white coloring.
Priority Claims (1)
Number Date Country Kind
2007904927 Sep 2007 AU national
PCT Information
Filing Document Filing Date Country Kind 371c Date
PCT/AU2008/001345 9/11/2008 WO 00 6/2/2010
Publishing Document Publishing Date Country Kind
WO2009/033219 3/19/2009 WO A
US Referenced Citations (72)
Number Name Date Kind
5016194 Matsushita et al. May 1991 A
5241625 Epard Aug 1993 A
5341466 Perlin Aug 1994 A
5801699 Hocker Sep 1998 A
5801700 Ferguson Sep 1998 A
5874962 de Judicibus Feb 1999 A
5877762 Young Mar 1999 A
5887081 Bantum Mar 1999 A
5977974 Hatori Nov 1999 A
6011537 Slotznick Jan 2000 A
6133914 Rogers Oct 2000 A
6408301 Patton Jun 2002 B1
6414672 Rekimoto Jul 2002 B2
6510553 Hazra Jan 2003 B1
6542192 Akiyama Apr 2003 B2
6590593 Robertson Jul 2003 B1
6727906 Lockeridge Apr 2004 B2
6819267 Edmark Nov 2004 B1
6880132 Uemura Apr 2005 B2
6978472 Nashida Dec 2005 B1
7065716 Rzepkowski Jun 2006 B1
7102639 Oka Sep 2006 B2
7168813 Wong et al. Jan 2007 B2
7197535 Salesky Mar 2007 B2
7249327 Nelson et al. Jul 2007 B2
20080065996 Noel et al. Mar 2008
7394459 Bathiche et al. Jul 2008 B2
7395515 Konar Jul 2008 B2
7480873 Kawahara Jan 2009 B2
7519223 Dehlin Apr 2009 B2
7535463 Wilson May 2009 B2
7706634 Schmitt Apr 2010 B2
7907128 Bathiche Mar 2011 B2
8018579 Krah Sep 2011 B1
8111239 Pryor et al. Feb 2012 B2
8230359 Robertson Jul 2012 B2
8677284 Aguilar Mar 2014 B2
20020033849 Loppini Mar 2002 A1
20020051063 Hwang May 2002 A1
20030093466 Jarman et al. May 2003 A1
20040070608 Saka Apr 2004 A1
20040150646 Oka Aug 2004 A1
20050052427 Wu et al. Mar 2005 A1
20050132299 Jones et al. Jun 2005 A1
20050140696 Buxton Jun 2005 A1
20050280631 Wong et al. Dec 2005 A1
20060002315 Thuerer Jan 2006 A1
20060010392 Noel et al. Jan 2006 A1
20060010400 Dehlin et al. Jan 2006 A1
20060023078 Schmitt Feb 2006 A1
20060031786 Hillis Feb 2006 A1
20060125799 Hillis et al. Jun 2006 A1
20060136828 Asano Jun 2006 A1
20060140508 Ohgishi Jun 2006 A1
20060241864 Rosenberg Oct 2006 A1
20060253797 Madan Nov 2006 A1
20060274046 Hillis et al. Dec 2006 A1
20070014460 Kuziela et al. Jan 2007 A1
20070046643 Hillis et al. Mar 2007 A1
20070146347 Rosenberg Jun 2007 A1
20070157101 Indiran Jul 2007 A1
20070234226 Szeto Oct 2007 A1
20080024444 Abe Jan 2008 A1
20080222540 Schulz Sep 2008 A1
20080229222 Kake Sep 2008 A1
20090100343 Lee Apr 2009 A1
20090122018 Vymenets et al. May 2009 A1
20100241979 Apted Sep 2010 A1
20100281395 Apted Nov 2010 A1
20100295869 Apted Nov 2010 A1
20110239129 Kummerfield Sep 2011 A1
20120143991 Collins Jun 2012 A1
Foreign Referenced Citations (40)
Number Date Country
2003285781 Jul 2004 AU
20040304946 Jul 2005 AU
2008299577 May 2012 AU
2008299576 Jun 2012 AU
2008299579 Jun 2012 AU
2548724 Jul 2005 CA
10353785 Jun 2005 DE
102006012976 Jul 2007 DE
0235902 Jul 1991 EP
0572228 Dec 1993 EP
0368664 Jun 1995 EP
1573678 Sep 2005 EP
1685384 Aug 2006 EP
1695195 Aug 2006 EP
1913574 Apr 2008 EP
1952221 Aug 2008 EP
2347834 Sep 2000 GB
62219179 Sep 1987 JP
2130164 May 1990 JP
H11-345060 Feb 1998 JP
EP0853426 Jul 1998 JP
2004-078488 Aug 2002 JP
2010-524306 Oct 2002 JP
2002-140147 Feb 2003 JP
2004213641 Jul 2004 JP
2005100391 Apr 2005 JP
2006-172193 Jun 2006 JP
2006172193 Jun 2006 JP
2010-524307 Sep 2008 JP
2010-524305 Aug 2012 JP
WO9306691 Apr 1993 WO
WO2004057540 Jul 2004 WO
WO2005050175 Jun 2005 WO
WO2005060544 Jul 2005 WO
WO2006017695 Feb 2006 WO
WO2007014082 Feb 2007 WO
WO2007061839 May 2007 WO
WO2009033216 Mar 2009 WO
WO2009033217 Mar 2009 WO
WO2009033218 Mar 2009 WO
Non-Patent Literature Citations (40)
Entry
Otmar Hilliges et al., Photohelix: Browsing, Sorting and Sharing Digital Photo Collections, Horizontal Interactive Human-Computer Systems, Tabletop '07, Second Annual IEEE International Workshop, Oct. 2007, pp. 87-94.
Office Action for Corresponding Australian Application No. 20085299576 dated Jun. 12, 2012.
Office Action for Corresponding Japanese Application No. 2010-52305 dated Aug. 28, 2012.
Office Action for Corresponding Australian Application No. 2008299577 dated May 23, 2012.
Office Action for Corresponding Japanese Application No. 2010-524306 dated Oct. 2, 2012.
Meyer, Fernand “An Overview of Morphological Segmentation” International Journal of Pattern Recognition and Artificial Intelligence, Nov. 1, 2001 Vo. 15, No. 7, pp. 1089-1118.
Office Action for Corresponding Japanese Application 2010-524307 dated Feb. 5, 2013.
Office Action for Corresponding European Application 08799989.2 dated Jan. 7, 2013.
Office Actionfor Corresponding European Application 08799989.2 dated Oct. 27, 2011.
Office Actionfor Corresponding Australian Application 2008299578 dated Feb. 28, 2013.
U.S. Appl. No. 12/677,760, Oct. 11, 2012, Final Office Action.
U.S. Appl. No. 12/677,765, Dec. 5, 2012, Office Action.
U.S. Appl. No. 12/677,756, May 9, 2013, Final Office Action.
U.S. Appl. No. 12/677,760, May 24, 2013, Office Action.
Jingyu Cui et al., “Easy Album: An Interactive Photo Annotation System Based Annotation System Based on Face Clustering and Re-ranking, Conference on Human Factors in Computing Systems Archive”, Proceedings of SIGCHI Conference on Human Factors in Computing Systems, CHI 2007, Apr. 28-May 3, 2007, San Jose, CA, USA.
Techsmith: “Snaglt User's Guide, Capture and Share Anything on Your Screen” Internet Citation 2003, XP 002354973, retrieved from the Internet: URL: ftp://ftp.techsmith.com/Pub/products/snagit/63/snagitug.pdf, retrieved Nov. 18, 2005.
Everitt K et al.: “MultiSpace: Enabling Electronic Document Micromobility in Table-Centric, Multi-Device Environments”, Horizontal Interactive Human-Computer Systems, 2006. TableTop 2006. First IEEE International Workshop on Adelaide, South Australia Jan. 5-7, 2006, Piscataway, NJ, USA, IEEE, Jan. 5, 2006, pp. 27-34, ISBN: 978-0-7695-2494-8.
Scott S D et al: “Storage Bins: Mobile Storage for Collaborative Tabletop Displays”, IEEE Computer Graphics and Applications, IEEE Service Center, New York, NY, US, vol. 25, No. 4, Jul. 1, 2005 pp. 58-65, ISSN: 0272-1716.
International Search Report cited in International Application No. PCT/AU2010/0008323 dated Aug. 23, 2010.
Montferrat, P., Apostolopoulou, A., Besacier, G., Buisine, S., Rey, G., Vernier, F. (2007). Brainstorming and mind-mapping on DiamondTouch: Creativity unleashed. (1 page) (the month of Publication is irrelevant as the year of Publication is clearly prior to the filing of the Application).
Hilliges, Otmar “Designing for Collaborative Creative Problem Solving” Jun. 13-15, 2007, Washington DC, USA (10 pages).
Christensen, Brett, “Relocate theWindows Taskbar,” May 6, 2006, Available http://web.archive.org/web/20060506163826/http://www.sp-tips.com/relocate-taskbar.html.
Hilliges, Otmar, Banr, Dominikus, Butz, Andreas “Photohelix:Browsing, Sorting and Sharing Digital Photo Collections” 9 pages, Oct. 2007; Media Informatics Group, University of Munich, Germany.
U.S. Appl. No. 12/677,760, Feb. 9, 2012, Office Action.
U.S. Appl. No. 12/677,756, Sep. 14, 2012 Office Action.
Extended European Search Report from PCT/AU2008/001343 completed Sep. 13, 2013.
U.S. Appl. No. 12/677,760, Nov. 27, 2013, Final Office Action.
U.S. Appl. No. 12/677,756 Dec. 26, 2013, Notice of Allowance.
Office Action for Corresponding Japanese Application 2010-524305 dated Sep. 10, 2013.
Extended European Search Report for PCT/AU2008/001344 dated Nov. 8, 2010.
U.S. Appl. No. 12/677,765, Aug. 29, 2013, Final Office Action.
U.S. Appl. No. 12/677,765, Apr. 10, 2014, Office Action.
Office Action for Corresponding European Application 08799988.4 dated Jul. 18, 2012.
Office Action for Corresponding Australian Application 2008299576 dated Mar. 6, 2014.
International Search Report for PCT/AU2008/001342 dated Nov. 19, 2008.
International Search Report for PCT/AU2008/001345 dated Nov. 21, 2008.
International Search Report for PCT/AU2008/001344 dated Nov. 5, 2008.
International Search Report for PCT/AU2008/001343 dated Oct. 24, 2008.
U.S. Appl. No. 12/677,765, Oct. 1, 2014, Notice of Allowance.
U.S. Appl. No. 12/677,760, Nov. 19, 2014, Office Action.
Related Publications (1)
Number Date Country
20100271398 A1 Oct 2010 US