Information processing device, control method for information processing device, program, and storage medium

By implementing the object fitting function on the information processing device, and aligning the new object with the alignment points of the placed object, the user's convenience needs in layout operations are solved, and the sense of uniformity of the layout and operation efficiency are improved.

JP7673271B2Active Publication Date: 2025-05-08CANON KK
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024032181
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-03-04
Publication Date
2025-05-08
Estimated Expiration
2039-08-08

AI Technical Summary

Technical Problem

In the prior art, as the opportunity for object layout increases, the user's convenience needs in layout operations are not fully met.

Method used

By implementing the object fitting function on the information processing device, the new object is aligned with the alignment points of the placed object, automatic positioning and layout of the new object is achieved. Specifically, when a user places a new object in the layout area, the device automatically aligns the new object to the specified fit point based on the minimum distance between the placed object and the edge of the layout area.

Benefits of technology

The layout is completed through simple operations, making the layout feel unified and improving the user's operation convenience and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007673271000001
    Figure 0007673271000001
  • Figure 0007673271000002
    Figure 0007673271000002
  • Figure 0007673271000003
    Figure 0007673271000003
Patent Text Reader

Abstract

To improve convenience of layout operation due to increase of opportunities of object layout.SOLUTION: An information processing apparatus which can execute object snapping for automatically aligning a new object with objects already arranged in a facing page area to arrange the new object in the facing page area specifies a snapping point associated with the object snapping on the basis of the facing page area and the objects already arranged in the facing page area, and executes the object snapping when the object to be additionally arranged in the facing page area is arranged within a predetermined range based on the snapping point.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an information processing device, a control method for an information processing device, a program, and a storage medium. [Background technology]

[0002] Presentation material creation software and CAD software have a function called object snapping to improve user operability in object placement processing (Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2010-176275 A Summary of the Invention [Problem to be solved by the invention]

[0004] In recent years, as opportunities to lay out objects have increased, there has been a demand for improved convenience in layout operations. [Means for solving the problem]

[0005] In order to achieve the above objectives, An information processing device capable of performing object snapping in which a new object is placed by aligning the position of the new object with a snapping point based on the placement position of an object already placed in a placement area, a control means for controlling, when an operation for placing a new object is performed within a first range based on a first snapping point specified by the minimum value of the distance between each of a plurality of objects already placed in the placement area and an edge of the placement area, to place the new object in accordance with the first snapping point by object snapping. The present invention is characterized by having the following. Effect of the Invention

[0006] According to the present invention, it is possible to realize a uniform layout with simple operations. [Brief description of the drawings]

[0007] [Figure 1] Flowchart relating to embodiment 1 [Diagram 2] Flowchart relating to embodiment 1 [Diagram 3] Flowchart relating to embodiment 1 [Figure 4] Flowchart relating to embodiment 1 [Diagram 5] A diagram showing an example of a buffer [Figure 6] A diagram showing an example of a snapping point [Figure 7] system configuration diagram [Figure 8] A diagram showing an example of an object list. [Figure 9] Flowchart relating to embodiment 2 [Figure 10] A diagram showing an example of the positional relationship of objects [Figure 11] Flowchart relating to embodiment 2 [Figure 12] A diagram showing an example of object snapping. [Figure 13] A diagram showing an example of object snapping. [Figure 14] A diagram showing an example of object snapping. [Figure 15] A diagram showing an example of object snapping. [Figure 16] FIG. 13 is a diagram showing an example of an editing screen. [Figure 17] A diagram showing an example of a snapping point [Figure 18] A diagram showing an example of object snapping. [Figure 19] Photo Album Example DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0008] <Embodiment 1> A configuration diagram of a photo album ordering system is shown in Fig. 7. An information processing device 704 requests the creation of a photo album to a printing base having a printer 701 via the Internet 703. An example of the information processing device 704 is a PC, a tablet, or a smartphone.

[0009] An album editing application 712 is installed in the information processing device 704. The album editing application 712 can generate album data for creating an album (photo album, photo book) as shown in FIG. 19 from image data. The information processing device 704 transmits print data based on the album data to a printer 705. The information processing device 704 can also upload the album data to an external server 702. The information processing device 704 has a ROM 709, a RAM 710, and a CPU 711. The information processing device 704 is also connected to a printer 705, a monitor 706, an input device 707, and an external storage device 708. The information processing device 704 also has an input / output interface (not shown) for connecting to a network 703.

[0010] The CPU 711 is a central processing unit, and controls the entire information processing device 704 by executing an operating system (hereinafter abbreviated as OS) stored in the storage device 708, ROM 709, and RAM 710. Each program is stored in the ROM 709. The RAM 710 is a random access memory, and is used as a work memory for the CPU 711. Furthermore, if the RAM 710 is a non-volatile RAM, each program is stored in the RAM 710.

[0011] The information processing device 704 is capable of communicating with an external server 702 via the Internet 703. The external server 702 has an input / output interface (not shown) for connecting to the printer 701, and is capable of communicating with the printer 701 via the input / output interface.

[0012] The album data created in the information processing device 704 is uploaded to an external server 702 via the Internet 703. The external server 702 transmits print data based on the uploaded album data to the printer 701. For example, the external server 702 receives orders for creating albums and manages the orders for creating albums.

[0013] The user uploads the album data created by the information processing device 704 to the external server 702 and performs the necessary album purchase procedures. If these user operations are performed appropriately, the external server 702 transmits print data based on the album data to the printer 701. Thereafter, the printed matter printed by the printer 701 is bound to generate an album, which is then delivered to the user.

[0014] The printer 705 prints print data based on the album data created by the information processing device 704. For example, the printouts printed by the printer 705 are bound by the user to generate an album. The monitor 706 is a display device that displays image information and album data output by the information processing device 704. The input device 707 is an input device such as a keyboard or a pointing device for inputting to the information processing device 704. Note that, depending on the form of the input device, it may be integrated with the monitor, and may be a touch panel that allows input by directly touching the monitor. The storage device 708 is a storage device such as an HDD or SSD that stores image data, templates, and the like. Note that the configuration shown in FIG. 7 is an example, and may be in another form. For example, the information processing device 704 may be configured to include the monitor 706, the input device 707, and the storage device 708.

[0015] Next, a process for a user to order a photo book using the system of Fig. 7 will be described. When the album editing application 712 is started, the user can create new album data or re-edit the album data. When re-editing is performed, the album data is acquired by the information processing device 704 via the Internet 703, for example. The album data may also be imported into the information processing device 704 via the external storage device 708. In this embodiment, a process for creating new album data will be described.

[0016] When new album data is created, an edit screen 1601 shown in Fig. 16(a) is displayed. In the initial state of the edit screen 1601 shown in Fig. 16(a), everything except the bookbinding parameter setting area 1610 is grayed out (input is not possible).

[0017] The user selects the binding parameters, such as the album size (e.g., 21 cm square, A4, etc.), cover type (hard cover, soft cover, etc.), and number of pages (20 pages, 30 pages, etc.). Note that there may be other setting items, such as paper type. Once parameters have been entered for all setting items, the price of the album is calculated and displayed.

[0018] When the price calculation results are displayed, the page list area 1609 is ungrayed and a list of double-page spreads based on the specified bookbinding parameters is displayed.

[0019] When the user selects a facing page that the user wants to start editing from the page list area 1609, a page image of the facing page 1614 is displayed and the system enters an editing standby state. When the user presses the load button 1612 to load image data that is the material for the album, a file selection dialog box is displayed. The user uses the file selection dialog box to select image data.

[0020] The selected image data is displayed in the list 1606, and the user drags and drops the desired image data onto the facing page 1614. As a result, the image data is arranged on the facing page 1614 (FIG. 16(b)).

[0021] When a user orders an album, album data created by an information processing device 704 is uploaded to an external server 702 via a network 703. If the uploaded album data is printable, the external server 702 outputs print data based on the album data to a printer 701.

[0022] This embodiment is an auxiliary function for when the user manually arranges image data to create an album, and functions in a layout editing operation using an editing screen 1601 in Fig. 16. Note that in this embodiment, the coordinate values ​​of a double-page spread have the upper left corner of the page as the origin, the X coordinate value increases toward the right, and the Y coordinate value increases toward the bottom (for example, 1003 in Fig. 10).

[0023] The user selects a page to be edited from the page list 1609 in FIG. 16(a), and drags and drops the image data selected from the photo list 1606 displayed at the bottom onto the facing page 1614. As a result, the image data is added to the facing page 1614 as shown in FIG. 16(b). Furthermore, the user moves the added photo (image data) by dragging the mouse or using the touch panel to adjust the position and size of the image data. The information processing device 704 of this embodiment can perform object snapping to improve the efficiency of such layout operations by the user. Object snapping is a process for automatically determining the placement position of a new object based on the position of an already placed object. By object snapping, the user can easily align the positional relationship between the already placed object and the new object when placing a new object. A specific operation will be described with reference to FIG. 18, for example.

[0024] Next, the processing of this embodiment will be described with reference to Fig. 1. Note that the flowchart of this embodiment is realized by the CPU 711 reading out from memory a program related to the processing of the flowchart and executing it.

[0025] The CPU 711 accepts a drag operation on an object arranged on a facing page from the user (S101). When a drag operation is accepted, the CPU 711 searches for an object present at the mouse position, and stores the position information and size information of this dragged object in the drag start information buffer 553 to 556 in Fig. 5. Note that in Fig. 5, information 501 to 507 is stored as the interval storage buffer, and information 551 to 557 is stored as the drag start information buffer.

[0026] For example, the X coordinate of the top left vertex of the image data of the drag target is stored in 553, and the Y coordinate is stored in 554. Furthermore, the width and height of the image data of the drag target are stored in 555 and 556. Furthermore, the CPU 711 needs to access the drag target object in order to move or resize the drag target object after dragging. Therefore, the CPU 711 holds a pointer to the drag target object in 557. Furthermore, the CPU 711 stores the mouse position at the start of this drag in the mouse positions 551 and 552 of the drag start information buffer in FIG. 5.

[0027] The CPU 711 establishes a snapping point on the buffer shown in Fig. 6 (S102). Note that S102 will be described in detail later.

[0028] The CPU 711 calculates the difference between the information stored in 551 and 552 in FIG. 5 and the current mouse position, and obtains the amount of mouse movement (S103).

[0029] The CPU 711 identifies position information of the current position of the drag target object (S104). Specifically, the CPU 711 calculates the current position of the drag target object based on the mouse movement amount acquired in S103 and the information 553 and 554 in Fig. 5. The CPU 711 then reflects the calculated position information of the current position of the drag target object in position information 801 indicated by pointer 557 to the drag target object.

[0030] The CPU 711 judges whether or not there is a snap point in the vicinity of the current position of the dragged object (S105). Specifically, the CPU 711 compares the snapping point data in FIG. 6 with the position information of the current position of the dragged object identified in S104, and judges whether or not the distance between them is closer than a specified distance. If the result of the judgment in S105 is Yes, the CPU 711 moves the dragged object to the nearby snapping point (S106). In other words, the CPU 711 executes object snapping when the newly placed object is placed within a predetermined range based on the snapping point. Here, S105 will be described in detail.

[0031] The position and size information of image data arranged on a double-page spread is managed as shown in Fig. 8. Therefore, the CPU 711 compares the X coordinate of the position information 801 of the dragged object with the left margin 1 (601) of the snapping point data in Fig. 6, and determines whether the distance between them is closer than a specified distance. If it is determined that the distance between them is closer than the specified distance, the CPU 711 moves the dragged object to the position of the left margin 1 (601).

[0032] On the other hand, if the CPU 711 determines that the distance between the X coordinate of the position information 801 of the object to be dragged and the left margin 1 (601) of the snapping point data in FIG. 6 is greater than the specified distance, it changes the comparison target to the left margin 2 (602) and performs a similar comparison process.

[0033] Next, a comparison between the X coordinate of the position information 801 of the dragged object and the binding margin (left) 603 to the center of the right page 606 will be described.

[0034] The CPU 711 first calculates the X coordinate of the center of the dragged object by "X coordinate of the object's position information 801 + (width of the size information 802 ÷ 2)". The CPU 711 sequentially compares this calculated X coordinate with the binding margin (left) 603 to the right page center 606. If the CPU 711 determines that the distance between any of the binding margin (left) 603 to the right page center 606 and the X coordinate of the center of the dragged object is closer than a specified distance, it moves the dragged object using the snapping point data of the comparison target.

[0035] If the CPU 711 does not determine "Yes" in S105 even when it compares the right page center 606 with the X coordinate of the center of the dragged object, it changes the snapping point data to be compared next to the binding margin (right) 607 or later.

[0036] The CPU 711 first calculates the X coordinate of the right edge of the dragged object using "the X coordinate of the object's position information 801 + the width of the size information 802." The CPU 711 sequentially compares this calculated X coordinate with the binding margin (right) 607 to the right margin 2 (609). If the CPU 711 determines that the distance between any of the binding margin (right) 607 to the right margin 2 (609) and the X coordinate of the center of the dragged object is closer than an arbitrary specified distance, it moves the dragged object using the snapping point data of the comparison target.

[0037] If the CPU 711 compares the right margin 2 (609) with the X coordinate of the center of the dragged object but does not return Yes in S105, it changes the comparison target to the top margin 1 (610). The CPU 711 sequentially compares the Y coordinate of the position information 801 of the dragged object with the top margin 1 (601) and top margin 2 (602). If the CPU 711 determines that the distance between either the top margin 1 (601) or top margin 2 (602) and the Y coordinate of the dragged object is closer than an arbitrary specified distance, it moves the dragged object using the snapping point data of the comparison target.

[0038] If the CPU 711 does not determine "Yes" in S105 even when it compares the top margin 2 (602) with the Y coordinate of the dragged object, it changes the snapping point data of the next comparison target to the page center (612).

[0039] The CPU 711 first calculates the Y coordinate of the center of the dragged object by "Y coordinate of the object's position information 801 + (height of the size information 802 ÷ 2)". This calculated Y coordinate is compared with the page center (612). If the CPU 711 determines that the distance between the Y coordinate of the dragged object's center and the page center (612) is closer than an arbitrary specified distance, it moves the dragged object using the snapping point data of the comparison target.

[0040] If the CPU 711 does not determine "Yes" in S105 even when it compares the Y coordinate of the center of the dragged object with the page center (612), it changes the snapping point data of the next comparison target to bottom margin 1 (613).

[0041] The CPU 711 first calculates the Y coordinate of the bottom end of the dragged object using "the Y coordinate of the object's position information 801+the height of the size information 802." The CPU 711 sequentially compares this calculated Y coordinate with bottom margin 1 (613) and bottom margin 2 (614). If the CPU 711 determines that the distance between either bottom margin 1 (613) or bottom margin 2 (614) and the Y coordinate of the bottom end of the dragged object is closer than an arbitrary specified distance, it moves the dragged object using the snapping point data of the comparison target.

[0042] If the CPU 711 does not determine "Yes" in S105 even when it compares the distance between the Y coordinate of the bottom end of the drag target object and the bottom margin 2 (614), it determines "No" in S105.

[0043] If the determination in S105 is Yes, the CPU 711 moves (snaps) the position of the dragged object to the snapping point (S106).

[0044] Here, S106 will be specifically described. For example, if the determination in S105 is Yes when any one of the above-mentioned left margin 1 (601) to binding margin (left) is used as the comparison target, the CPU 711 reflects the data of the comparison target in the X coordinate of the drag target object. This process enables the CPU 711 to move the left end of the drag target object so as to align it with the snapping point of the comparison target.

[0045] In addition, for example, a case where the determination in S105 is Yes when any one of the above-mentioned left page center (604) to right page center (606) is used as the comparison target will be described. In this case, the CPU 711 reflects "matched snapping point - (width of size information 802 ÷ 2)" in the X coordinate of the drag target object. This process enables the CPU 711 to move the center of the drag target object so as to match the snapping point of the comparison target.

[0046] In addition, for example, a case where the determination in S105 is Yes when any one of the binding margin (right) 607 to the right margin 2 (609) is used as the comparison target will be described. In this case, the CPU 711 reflects the "matched snapping point - width of the size information 802" in the X coordinate of the drag target object. This process enables the CPU 711 to move the right end of the drag target object so as to match the snapping point of the comparison target.

[0047] In addition, for example, a case where the determination in S105 is Yes when either the top margin 1 (610) or the top margin 2 (611) is used as the comparison target will be described. In this case, the CPU 711 moves the top end of the drag target object so as to align it with the snapping point of the comparison target.

[0048] Also, for example, a case where the determination in S105 is Yes when the page center 612 is used as the comparison target will be described. In this case, the CPU 711 reflects "matched snapping point - (height of size information 802 ÷ 2)" in the Y coordinate of the drag target object. This process enables the CPU 711 to move the center of the drag target object so as to match the snapping point of the comparison target.

[0049] Next, a case where the determination in S105 is Yes when bottom margin 1 (613) or bottom margin 2 (614) is used as the comparison target will be described. In this case, the CPU 711 reflects the value obtained by subtracting the object height from the value of bottom margin 1 (613) or bottom margin 2 (614) in the Y coordinate of the object. This process enables the CPU 711 to move the bottom end of the dragged object to match the snapping point of the comparison target.

[0050] The CPU 711 may display a guideline at the position that was used as the reference when performing the process of S 106. Here, the object snapping and guideline display process will be described with reference to FIG.

[0051] FIG. 18(a) shows a situation where new image data 1802 is being dragged in a situation where image data 1801 is placed at a position distanced 1803 from the left edge of a spread page. In other words, image data 1802 is the dragged object. Note that both the left margin 1 (601) and the right margin 1 (608) in FIG. 6 hold a value indicating the distance 1803. In this situation, if image data 1802 is dragged to a position near a position distanced 1803 from the right edge of a spread page, the CPU 711 determines Yes in S105 and executes S106. As a result, the CPU 711 moves image data 1802 to a snapping point distanced 1803 from the right edge of a spread page as shown in FIG. 18(b). Note that the movement from image data 1802 in FIG. 18(a) to image data 1802 in FIG. 18(b) is performed automatically. At this time, the CPU 711 displays a guide line 1804 and an arrow 1803 for the snapping point that is the reference for snapping. Note that the guide line 1804 and the arrow 1803 may be displayed in a different form.

[0052] The CPU 711 determines whether or not a cancellation operation of the drag operation has been performed (S107). For example, if the CPU 711 determines that the ESC key has been operated, the result of S107 is Yes. On the other hand, if the result of S107 is No, the process of FIG. 1 proceeds to S109.

[0053] If the determination in S107 is Yes, the CPU 711 acquires object positions 553-554 and object sizes 555-556 at the start of dragging from the drag start information buffer in Fig. 5. Then, the CPU 711 reflects this in position information (801) and size information (802) of the drag target object pointed to by pointer 557 to the drag target object, thereby returning the drag target object to the state before dragging.

[0054] The CPU 711 determines whether the drag operation is completed (S109). Specifically, the CPU 711 can realize S109 by detecting whether the user has released the mouse button. If the determination in S109 is Yes, the CPU 711 determines the current position information as the position of the drag target object (S110). If the determination in S109 is No, the process in FIG. 1 returns to S103.

[0055] Before describing S102 in detail, the snapping point will be described with reference to FIG.

[0056] FIG. 17 shows a state in which two pieces of image data 1701 and 1702 have already been laid out on a facing page 1703 .

[0057] 17, image data 1701 and image data 1702 are arranged on a two-page spread 1703, and the image data arranged at the shortest distance from the left and right edges is image data 1701. Therefore, the vertical line at a position of distance 1705 between the left edge and image data 1701 and the vertical line at a position of distance 1705 from the right edge become the snapping points of the left and right margins.

[0058] 17, the image data that is positioned closest to the top and bottom edges of the spread page 1703 is image data 1702. Therefore, the horizontal line at a position 1706 away from the bottom edge of the spread page 1703 and the image data 1702, and the horizontal line at a position 1706 away from the top edge, become the snapping points for the top and bottom margins.

[0059] 17, the distance 1705 between the left edge of the spread page 1703 and the image data 1701 is shorter than the distance 1706 between the bottom edge of the spread page 1703 and the image data 1702. Therefore, the vertical line and the horizontal line located at a distance 1705 from the top, bottom, left, and right edges become the snapping points of the shortest margin.

[0060] The fourth snapping point is the binding margin. In Fig. 17, the distance 1707 between the image data 1702 and the binding portion 1704 is shorter than the distance between the image data 1701 and the binding portion 1704. Therefore, the vertical line at the position that is the distance 1707 away from the binding portion 1704 on the left and right becomes the snapping point of the binding margin. Note that the CPU 711 may disable the snapping process when new image data is dragged so as to straddle the binding portion 104.

[0061] Next, the process of generating snapping points will be described with reference to FIG.

[0062] The CPU 711 generates an object list 800 in Fig. 8 based on the objects arranged on the double-page spread, and identifies the first object as the target object (S201). At this time, the CPU 711 secures an area for the interval holding buffer shown in Fig. 5 in the RAM 710, and initializes it. Specifically, the CPU 711 sets the value of "paper width / 4" to the left and right margins 501 and the binding margin 504, and sets the value of "paper height / 2" to the top and bottom margins 502.

[0063] The CPU 711 determines whether the target object is the last object in the object list of Fig. 8 (S202). If it is determined that the target object is not the last object, it determines whether the selected target object is a drag target object (S203). If it is determined that the target object is a drag target object, the target object is not subject to a snapping point, and the process of Fig. 2 proceeds to S207. The CPU 711 then selects the next object from the list of Fig. 8 as the target object, and returns the process to S202.

[0064] If the result of S203 is No, the CPU 711 performs left and right margin extraction processing (S204). The processing of S204 will be described with reference to FIG. 3(a). The CPU 711 determines whether the distance from the left edge of the current target object to the left edge of the facing page is smaller than the value of the left and right margins 501 (S301). If the result of S301 is Yes, the CPU 711 updates the value of the left and right margins 501 using the value of the distance from the left edge of the current target object to the left edge of the facing page (S302).

[0065] The CPU 711 determines (S303) whether the distance from the right edge of the current target object to the right edge of the spread page is smaller than the value of the left and right margins 501. If the determination in S303 is Yes, the CPU 711 updates the value of the left and right margins 501 using the value of the distance from the right edge of the current target object to the right edge of the spread page (S304).

[0066] When the process of FIG. 3(a) (i.e., the process of S204) is completed, the CPU 711 performs a process of extracting top and bottom margins (S205). The process of S205 will be described with reference to FIG. 3(b). The CPU 711 determines whether the distance from the top of the current target object to the top of the facing page is smaller than the value of the top and bottom margins 502 (S305). If the determination in S305 is Yes, the CPU 711 updates the value of the top and bottom margins 502 using the value of the distance from the top of the current target object to the top of the facing page (S306).

[0067] The CPU 711 determines whether or not the distance from the bottom edge of the current target object to the bottom edge of the spread page is smaller than the value of the top and bottom margins 502 (S307). If the determination in S307 is Yes, the CPU 711 updates the value of the top and bottom margins 502 using the value of the distance from the bottom edge of the current target object to the bottom edge of the spread page (S308).

[0068] When FIG. 3(b) (i.e., the processing of S205) is completed, the CPU 711 performs a binding margin extraction process (S206). The processing of S206 will be described with reference to FIG. 4. The CPU 711 determines whether the current target object straddles the binding portion (S401). For example, when the CPU 711 determines that the left end of the current target object is on the left side of the binding portion and the right end of the current target object is on the right side of the binding portion, it determines that the current target object straddles the binding portion and determines Yes in S401.

[0069] If the result of the determination in S401 is Yes, the CPU 711 sets the binding margin 504 to 0. On the other hand, if the result of the determination in S401 is No, the CPU 711 determines whether the current target object is placed in the left page area of ​​a two-page spread (S403). If the result of the determination in S403 is Yes, the CPU 711 determines whether the distance between the right edge of the current target object and the binding portion (or the left edge of the spine) is smaller than the value of the binding margin 504 (S404). Note that the width of a two-page spread may be set as the initial value for the binding margin 504.

[0070] 4 ends if the determination in S404 is No. On the other hand, if the determination in S404 is Yes, the CPU 711 sets the distance from the right end of the current target object to the binding portion (or the left end of the spine) as the binding margin 504 (S406).

[0071] If the determination in S403 is No, the CPU 711 determines whether the distance between the left edge of the current target object and the bound portion (or the right edge of the spine) is smaller than the value of the binding margin 504 (S405). If the determination in S405 is No, the processing in FIG. 4 ends. On the other hand, if the determination in S405 is Yes, the CPU 711 sets the distance between the right edge of the current target object and the bound portion (or the left edge of the spine) to the binding margin 504 (S406).

[0072] The CPU 711 executes S207 following S206, and returns the process to S202. If the determination in S202 is Yes, the CPU 711 compares the values ​​of the left and right margins 501 and the top and bottom margins 502, and sets the smaller value as the minimum margin 503.

[0073] Since the margin values ​​necessary for generating snapping points are obtained by the processing up to S208, the values ​​in Fig. 6 are set by the processing from S209 to S215 thereafter. The CPU 711 sets the left and right margins 501 to left margin 1 (601) and top margin 1 (610) (S209, S210).

[0074] The CPU 711 sets the minimum margin 503 to the left margin 2 (602) and top margin 2 (611) (S211), and sets the right margin 1 (608) to the value obtained by subtracting the left and right margins 501 from the X coordinate value of the right edge of the spread page (S212).

[0075] The CPU 711 sets the value obtained by subtracting the top and bottom margins 502 from the Y coordinate value of the bottom edge of the spread page as bottom margin 1 (613) (S213), and sets the value obtained by subtracting the minimum margin 503 from the X coordinate value of the right edge of the spread page as right margin 2 (609) (S214).

[0076] The CPU 711 sets the bottom margin 2 (614) to a value obtained by subtracting the minimum margin 503 from the Y coordinate value of the bottom edge of the spread page (S215).

[0077] Next, the CPU 711 updates the snap point of the binding part and the snap point of the center of the page (S216). If the binding margin 504 is 0, snapping to the binding part is not performed, so a value that does not perform snapping (for example, a value indicating the outside of a double-page spread) is set to the binding margin (left) 603 and the binding margin (right) 607. On the other hand, if the binding margin 504 is other than 0, the CPU 711 sets the difference value between the X coordinate of the binding part and the binding margin 504 to the binding margin (left) 603, and sets the sum of the X coordinate of the binding part and the binding margin 504 to the binding margin (right) 607.

[0078] Next, the CPU 711 sets snap points at the center of the pages. For example, as shown in Fig. 17, the CPU 711 sets a horizontal center line 1709 of the left page, a horizontal center line 1710 of the right page, and a horizontal center line 1704 at the binding portion. The CPU 711 also sets a horizontal line 1711 in the vertical direction. The center line 1704 is also called the binding portion.

[0079] The CPU 711 also sets the value of the X coordinate of the bound portion divided by 2 to the left page center 604, and sets the X coordinate of the bound portion to the binding position 605. The CPU 711 also sets the value of (page width-binding X coordinate) divided by 2 to the right page center 606, and sets the value of the page height divided by 2 to the page center 612.

[0080] An example of object snapping using the values ​​in FIG. 6 set by the above process will be described with reference to FIG.

[0081] Assume that image data is arranged on a two-page spread as shown in FIG. 12(a). In this case, the distance from the left edge of the spread page to the left edge of the image data 1201 is set to the left margin 1 (601) and right margin 1 (608) in FIG. 6. Also, the distance from the top edge of the page to the top edge of the image data 1202 is set to the top margin 1 (610) and bottom margin 1 (613) in FIG. 6. Note that the distance from the left edge of the spread page to the left edge of the image data 1201 is smaller than the distance from the top edge of the spread page to the top edge of the image data 1202. Therefore, the distance from the left edge of the spread page to the left edge of the image data 1201 is set to the left margin 2 (602), right margin 2 (609), top margin 2 (611), and bottom margin 2 (614). In other words, the left margin 2 (602), right margin 2 (609), top margin 2 (611), and bottom margin 2 (614) identify the minimum distance between an object already placed on a spread page and the edge of the spread page area as the snapping point.

[0082] When the user drags image data 1203 as shown in Fig. 12(a), the CPU 711 determines that the distance between right margin 1 (or right margin 2) and the right end of image data 1203 has become smaller than a specified value. As a result, the CPU 711 executes object snapping as shown in Fig. 12(b). That is, the image data 1203 is automatically positioned so that it is aligned with guide line 1205 (i.e., the snapping point). At this time, the guidelines 1204 and 1205 and an arrow indicating the distance are displayed.

[0083] Also, when the user drags image data 1203 as shown in Fig. 12(c), the CPU 711 determines that the distance between bottom margin 1 and the bottom end of image data 1203 has become smaller than a specified value. As a result, the CPU 711 executes object snapping as shown in Fig. 12(d). That is, the image data 1203 is automatically positioned so that it aligns with guide line 1206 (i.e., the snapping point). At this time, the guide lines 1206 and 1207 and an arrow indicating the distance are displayed.

[0084] Next, an example of performing object snapping using the binding margin 603 in FIG. 6 will be described with reference to FIG.

[0085] The image data is arranged as shown in FIG. 13(a). The image data 1301 is arranged closest to the binding portion 1302, and the distance between the left ends of the binding portion 1302 and the image data 1301 is 1303. Therefore, the value of the distance 1303 is set to the binding margin (left) 603 and the binding margin (right) 607. Here, a case will be described in which it is determined that the distance between the image data 1304 and the binding margin (left) 603 is smaller than the specified value while the user is dragging the image data 1304. In this case, the snapping process is applied to the image data 1304, and the image data 1304 is arranged as shown in FIG. 13(b). That is, the image data 1304 is automatically arranged so as to follow the guide line 1305 (i.e., the snapping point). At this time, the guide line 1305 and the arrow 1303 indicating the distance are displayed. Through the above process, the user can easily execute a layout that maintains a certain margin centered on the binding portion.

[0086] According to this embodiment, the image object to be dragged is automatically positioned based on the positional relationship of the image data already placed on the spread page and the spread page, thereby improving user convenience.

[0087] <Embodiment 2> Next, object snapping using the minimum distance between objects will be described, with the same parts as in the first embodiment being omitted.

[0088] The minimum object intervals used in this embodiment are horizontal interval 505, vertical interval 506, and minimum interval 507 in Fig. 5. These values ​​are set when dragging begins.

[0089] As shown in FIG. 8, image objects arranged on a double-page spread are managed as an object list. The CPU 711 investigates the distances between these objects in a brute-force manner and identifies the minimum object interval by extracting the closest distance. At this time, there are cases where the distance between the objects is calculated and cases where it is not calculated depending on the positional relationship of the image objects. This will be explained using FIG. 10. For example, when two image objects to be the subject of distance measurement are arranged horizontally or vertically as in 1001, the CPU 711 calculates the distance between the image objects. On the other hand, an image object that exists on a diagonal shading with respect to the reference image object A as in 1002 is excluded from the objects to be calculated for the distance between the objects.

[0090] Hereinafter, the processing of this embodiment will be described with reference to Fig. 9. The coordinate values ​​of a double-page spread are shown in 1003 in Fig. 10. As shown in 1003 in Fig. 10, the upper left point is set as the origin, and (0, 0) is set. The X coordinate value increases toward the right, and the Y coordinate value increases toward the bottom. Also, for example, it is assumed that the coordinates of an image object 1004 are set to (Xa, Ya), and the size is set to (Wa, Ha).

[0091] The CPU 711 sets 0 to index i for scanning the list in FIG. 8 (S901), and determines whether the value indicated by index i is smaller than the number of image objects arranged on a facing page (S902). The image object corresponding to index i is referred to as image object (i). If the determination in S902 is Yes, the CPU 711 sets index j to i+1 (S903), and proceeds to the process of S904. The image object corresponding to index j is referred to as image object (j).

[0092] The CPU 711 determines whether the value indicated by the index j is smaller than the number of image objects arranged on the facing page (S904). If the determination is No in S904, the CPU 711 increments the index i (S910) and returns the process to S902.

[0093] If the result of S904 is Yes, the CPU 711 judges whether or not image object (i) and image object (j) are targets for measuring the distance (S905). That is, the CPU 711 specifies image object A in 1002 in Fig. 10 as image object (i), and judges whether or not image object (j) is arranged on the diagonal hatching of 1002. If image object (j) is arranged on the diagonal hatching of 1002, S904 is judged as No, and if image object (j) is not arranged on the diagonal hatching of 1002, S905 is judged as Yes.

[0094] If the determination in S905 is Yes, the CPU 711 calculates the distance between the image object (i) and the image object (j) (S906). Next, the CPU 711 determines whether the distance calculated in S906 is smaller than the left-right interval 505 (or the top-bottom interval 506) (S907). Note that if the image object (i) and the image object (j) are aligned horizontally, the left-right interval 505 is used, and if the image object (i) and the image object (j) are aligned vertically, the top-bottom interval 506 is used.

[0095] The case where it is determined that the distance calculated in S906 is smaller than the left-right interval 505 (or the up-down interval 506) (S907-Yes) will be described below. In this case, the CPU 711 sets the distance calculated in S906 to the left-right interval 505 (or the up-down interval 506) (S908), and proceeds to S909 to increment j.

[0096] If the result of S902 is No, the CPU 711 compares the value of the horizontal interval 505 with the value of the vertical interval 506, sets the smaller value as the minimum interval 507 (S911), and ends the processing of FIG.

[0097] Next, object snapping using the minimum interval 507 set by the above process will be described. Note that, in conjunction with Fig. 1, if it is determined as No in S105, the process of Fig. 11 is executed between S105 and S107.

[0098] The CPU 711 initializes index i (S1101) to make a judgment from the first image object in the list in FIG. 8, and judges whether the value of index i is smaller than the number of image objects arranged on a two-page spread (S1102). The image object corresponding to index i is referred to as image object (i). If the judgment in S1102 is No, the processing in FIG. 11 ends. On the other hand, if the judgment in S1102 is Yes, the CPU 711 judges whether image object (i) is a drag target object (S1103). If the judgment in S1103 is Yes, the CPU 711 proceeds to S1108, increments the value of index i, and returns to S1102.

[0099] On the other hand, if the result of the determination in S1103 is No, the CPU 711 determines whether or not the positional relationship between the image object (i) and the object being dragged is a target position for measuring the distance (S1104). The determination in S1104 is the same as the determination in S905, and therefore a detailed description will be omitted. If the result of the determination in S1104 is Yes, the CPU 711 calculates the distance between the image object (i) and the object being dragged (S1105). Then, the CPU 711 calculates the absolute value of the difference between the distance calculated in S1105 and the minimum interval 507, and determines whether or not the absolute value is smaller than a specified value (S1106). If the absolute value of the difference is larger than an arbitrary specified value (S1106-No), it is outside the snap range, so the process in FIG. 11 proceeds to S1108, and the search continues with the next object. If the absolute value of the difference is smaller than an arbitrary specified value, the CPU 711 executes a snapping process (S1107). Here, S1107 will be specifically described.

[0100] The CPU 711 moves (snaps) the drag target object based on the positional relationship between the image object (i) and the drag target object. A specific description will be given below.

[0101] First, a case will be described in which image object (i) is positioned above the object being dragged in the vertical direction of a spread page. In this case, the CPU 711 moves the dragged object by setting the value of "bottom end of image object (i) + minimum distance" as the top end of the dragged object.

[0102] When image object (i) is arranged below the drag target object in the vertical direction of a spread page, CPU 711 moves the drag target object with the "top end of image object (i)--minimum distance" as the bottom end of the drag target object.

[0103] When image object (i) is positioned to the left of the drag target object in the horizontal direction of the spread page, CPU 711 moves the drag target object with "the right end of image object (i) + minimum interval" as the left end of the drag target object.

[0104] When image object (i) is positioned to the right of the drag target object in the horizontal direction of the spread page, CPU 711 moves the drag target object with "left end of image object (i)--minimum distance" as the right end of the drag target object.

[0105] By the above process, it becomes possible to apply the minimum spacing between objects already placed on a spread page to the drag target object being dragged.

[0106] For example, assume that image data 1402 has already been placed as shown in FIG. 14(a), and image data 1401 is the object to be dragged. In this case, image data 1402 corresponds to image object (i) in FIG. 11, and becomes the reference object. Here, if it is determined that the distance between the right end of image data 1402 and the left end of image data 1401 is smaller than a specified value based on the minimum interval (matches the condition for applying the minimum interval), object snapping based on the minimum interval is executed. As a result, image data 1401 and image data 1402 are laid out so as to have a minimum interval 1403, as shown in FIG. 14(b). In other words, the distance between the newly placed object and the reference object becomes the minimum interval 1403.

[0107] 14(c), if the user further drags image data 1404 and it is determined that the distance between the bottom end of image data 1402 and the top end of image data 1404 is smaller than a specified value based on the minimum spacing, object snapping based on the minimum spacing is executed. As a result, the image data 1402 and image data 1404 are laid out so as to have the minimum spacing 1403, as shown in FIG. 14(d).

[0108] In addition, when performing the process of FIG. 11, a process of matching the sizes of objects may be performed. This will be described with reference to FIG. 15. For example, when performing the snapping process in S1107, the CPU 711 sets the size of the image object (i) to the size of the object being dragged. For example, the size of the drag target object being dragged in FIG. 15 is larger than the size of the image object (i). The CPU 711 acquires the size 802 of the image object (i) in FIG. 8 and reflects it in the size of the drag target object. As a result, the distance between the image object (i) and the drag target object is set to the minimum distance, and the size of the image object (i) is reflected in the drag target object. In addition, an attribute other than the size 802 may be reflected in the drag target object. For example, at least one of the transparency 804, the filter effect 805, and the rotation angle (not shown) may be reflected in the drag target object. In addition, examples of the filter effect include a process of converting the entire image data to sepia, a process of converting to monochrome, and a blurring process.

[0109] <Other embodiments> The album editing application 712 may have all the functions of the two embodiments described above.

[0110] Furthermore, the above-mentioned embodiment has been described as being executed using the album editing application 712, but this is not a limitation. For example, the processing of the above-mentioned embodiment may be executed using a layout editing application that newly arranges object data. Furthermore, the objects to be arranged do not have to be limited to image data. The above-mentioned embodiment may be applied when other data, such as stamp data, is arranged.

[0111] The above-described embodiments can also be realized by executing the following process. That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media. Then, a computer (CPU, MPU, processor, etc.) of the system or device reads and executes the program. The program may be executed by one computer or may be executed by multiple computers in cooperation with each other. Also, it is not necessary to realize all of the above-described processes by software, and some or all of the processes may be realized by hardware such as ASIC.

[0112] Furthermore, the CPU is not limited to one that performs all processing by itself, and multiple CPUs may perform processing in cooperation with each other as appropriate.

Claims

1. An information processing device capable of performing object snapping in which a new object is placed by aligning the position of the new object with a snapping point based on the placement position of an object already placed in a placement area, a control means for controlling, when an operation for placing a new object is performed within a first range based on a first snapping point specified by the minimum value of the distance between each of a plurality of objects already placed in the placement area and an end of the placement area, to place the new object in accordance with the first snapping point by object snapping.

13. An information processing device comprising:

2. The information processing device described in claim 1, characterized in that when an operation is performed to place a new object within a second range based on a second snapping point specified by the minimum distance between each of a plurality of objects that have already been placed in the placement area corresponding to a spread page and that do not straddle the part of the placement area corresponding to the binding portion of the spread page, and the part corresponding to the binding portion, the control means controls to place the new object in accordance with the second snapping point by object snapping.

3. An information processing device capable of performing object snapping in which a new object is placed at a snapping point based on the placement position of an object already placed in a placement area corresponding to a two-page spread, a control means for controlling, when an operation for placing a new object is performed within a second range based on a second snapping point specified by the minimum value of the distance between each of a plurality of objects that have already been placed in the placement area and that do not straddle a portion of the placement area corresponding to the binding portion of a double-page spread, and the portion corresponding to the binding portion, to place the new object in accordance with the second snapping point by object snapping.

13. An information processing device comprising:

4. The information processing device according to any one of claims 1 to 3, characterized in that when the distance between a reference object among objects already placed in the placement area and a new object to be newly placed in the placement area matches a condition for applying a minimum spacing between objects already placed in the placement area, the control means controls so that the new object is placed by object snapping so that the distance between the new object and the reference object is the minimum spacing.

5. An information processing device capable of performing object snapping in which a new object is placed by aligning the position of the new object with a snapping point based on the placement position of an object already placed in a placement area, a control means for controlling, when a distance between a reference object among objects already placed in the placement area and a new object to be newly placed in the placement area matches a condition for applying a minimum interval between objects already placed in the placement area, to place the new object in the placement area by object snapping so that the distance between the new object and the reference object becomes the minimum interval.

13. An information processing device comprising:

6. 6. The information processing apparatus according to claim 4, wherein, when the distance between the reference object and the new object matches the condition, the control means further controls so that an attribute of the reference object is reflected in the new object.

7. 7. The information processing apparatus according to claim 6, wherein the attribute is at least one of a size, a transparency, a filter effect, and a rotation angle.

8. 5. The information processing apparatus according to claim 1, wherein the control means controls so that, when object snapping is executed, a guide line indicating a corresponding snapping point is displayed.

9. 9. The information processing apparatus according to claim 1, wherein the layout area corresponds to a double-page spread area.

10. 9. The information processing apparatus according to claim 1, further comprising a specification unit that specifies a snapping point relating to object snapping based on an object already placed in the placement area and the placement area.

11. 1. A method for controlling an information processing device capable of performing object snapping in which a new object is placed by aligning its position with a snapping point based on a placement position of an object already placed in a placement area, comprising: a control step of controlling, when an operation of placing a new object is performed within a first range based on a first snapping point specified by a minimum value of distances between each of a plurality of objects already placed in the placement area and an edge of the placement area, to place the new object in accordance with the first snapping point by object snapping.

13. A method for controlling an information processing apparatus comprising the steps of:

12. A method for controlling an information processing device capable of performing object snapping in which a new object is placed by aligning the position of the new object with a snapping point based on the placement position of an object already placed in a placement area corresponding to a two-page spread, comprising: a control step of controlling, when an operation of placing a new object is performed within a second range based on a second snapping point specified by a minimum value of a distance between each of a plurality of objects that have been placed in the placement area and that do not straddle a portion of the placement area corresponding to a binding portion of a spread page, and the portion corresponding to the binding portion, by object snapping, to place the new object in accordance with the second snapping point.

13. A method for controlling an information processing apparatus comprising the steps of:

13. 1. A method for controlling an information processing device capable of performing object snapping in which a new object is placed by aligning its position with a snapping point based on a placement position of an object already placed in a placement area, comprising: a control step of controlling, when a distance between a reference object among objects already placed in the placement area and a new object to be newly placed in the placement area matches a condition for applying a minimum interval between objects already placed in the placement area, to place the new object in the placement area by object snapping so that the distance between the new object and the reference object becomes the minimum interval.

13. A method for controlling an information processing apparatus comprising the steps of:

14. A program for causing at least one computer to function as each of the means of the information processing device according to any one of claims 1 to 10.

15. 11. A computer-readable storage medium storing a program for causing at least one computer to function as each of the means of the information processing device according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Device and method for arranging image and computer program

    JP2005340992A

  • Method of manufacturing magnetic recording medium

    JP2006018998A

  • Clinical information input device

    JP2010176275A

  • Information processor and scanner device

    JP2011166478A

  • Layout edition device, layout edition method, and program

    JP2018019330A