Method and system for manipulating pixelated images

By converting digital images into editable text and shape layers, the method addresses the challenge of editing pixel-based images, improving the efficiency and accuracy of modifying text and shapes within them.

JP2025535681APending Publication Date: 2025-10-28INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025518260
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-10-10
Filing Date
2023-05-11
Publication Date
2025-10-28

AI Technical Summary

Technical Problem

Existing digital images, particularly those in pixel-based formats, are difficult to edit due to their pixel-based structure, making it challenging to modify text and shapes within them efficiently, especially in software documentation and other graphical content.

Method used

The method involves converting digital images into layers, creating editable text and shape layers with modifiable attributes, allowing for easier manipulation and editing of text and shapes by separating them from their pixel-based definitions.

Benefits of technology

This approach enables more efficient and accurate editing of text and shapes within digital images, maintaining their appearance while enhancing editability, thus simplifying the updating and reuse of graphical content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025535681000001_ABST
    Figure 2025535681000001_ABST
Patent Text Reader

Abstract

A method and system for manipulating an image composed of pixels is provided, which includes first creating editable text having modifiable text attributes from text in the image, forming a text layer for the image with the editable text created from the text in the image, where the editable text is placed in text positions in the text layer corresponding to the positions of the text in the image, creating a set of editable shapes having modifiable shape attributes, where the set of editable shapes corresponds to a set of shapes in the image, and forming a shape layer for the image with the set of editable shapes, where the set of editable shapes has a set of shape positions in the shape layer corresponding to a set of positions of the set of shapes in the image.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] 1. Field: The present disclosure relates generally to image creation with positioning of recreated text and shapes, and more particularly to methods, apparatus, systems, and computer programs for positioning text and shapes from layered images for manipulation. 2. Description of Related Technology

[0002] A digital image is an image made up of picture elements. These picture elements are also called pixels. These pixels can have values ​​that define the spatial coordinates of the pixel within the image. The spatial coordinates can be represented using values ​​on the x-axis and y-axis. Additionally, pixels can have values ​​for attributes of the pixel, such as intensity, color, or gray level. These types of images can also be referred to as rasterized or bitmap images.

[0003] Digital images can be used to present information in software documentation. For example, screenshots can be included in software documentation to show the user interface and other information to the user. In addition to screenshots, digital images can take other forms, such as scanned images, photographs, banners, geomaps, bitmaps for web pages, and other graphic drawings. Summary of the Invention

[0004] According to one exemplary embodiment, a computer-implemented method manipulates an image composed of pixels. A group of processor units creates editable text from text in the image. The editable text has modifiable text attributes. The group of processor units forms a text layer for the image with the editable text. The editable text is placed in a text position in the text layer corresponding to a position of the text in the image. The group of processor units creates a set of editable shapes corresponding to a set of shapes in the image, where the set of editable shapes has modifiable shape attributes. The group of processor units forms a shape layer for the image with the set of editable shapes. The set of editable shapes has a set of shape positions in the shape layer corresponding to a set of positions of the set of shapes in the image. According to another exemplary embodiment, a computer system and computer program product for manipulating a set of text and shapes are provided. [Brief explanation of the drawings]

[0005] [Figure 1] FIG. 1 is a block diagram of a computing environment in which exemplary embodiments may be implemented.

[0006] [Figure 2] 1 is a pictorial representation of a network of data processing systems in which an illustrative embodiment may be implemented;

[0007] [Figure 3] 1 is a block diagram of an image manipulation environment in accordance with an illustrative embodiment;

[0008] [Figure 4] FIG. 2 is a block diagram of a data flow for generating a new image from an image containing pixels in accordance with an example embodiment.

[0009] [Figure 5]1 is an illustration of image and text layers according to an example embodiment.

[0010] [Figure 6] 1 is an illustration of image and shape layers in accordance with an example embodiment;

[0011] [Figure 7] 10 is an illustration of a new image with combined layers in accordance with an example embodiment;

[0012] [Figure 8] 10 is a flowchart of a process for creating editable text with changeable text attributes in accordance with an illustrative embodiment;

[0013] [Figure 9] 10 is a flowchart of a process for manipulating editable text or editable shapes in accordance with an example embodiment;

[0014] [Figure 10] 10 is a flowchart of a process for combining text and shape layers into an editable image in accordance with an illustrative embodiment;

[0015] [Figure 11] 10 is a flowchart of a process for determining the location of text and shapes in accordance with an illustrative embodiment;

[0016] [Figure 12] 10 is a flowchart of a process for creating editable text in accordance with an illustrative embodiment.

[0017] [Figure 13] 10 is a flowchart of a process for creating a set of editable shapes in accordance with an illustrative embodiment;

[0018] [Figure 14]1 is a block diagram of a data processing system in accordance with an illustrative embodiment; DETAILED DESCRIPTION OF THE INVENTION

[0019] Various aspects of the present disclosure are described through narrative text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of a computer program product (CPP). With respect to any flowchart, depending on the technology involved, operations may be performed in an order different from that shown in a given flowchart. For example, again depending on the technology involved, two operations shown in successive flowchart blocks may be performed in the reverse order, as a single integrated step, simultaneously, or in an at least partially overlapping manner.

[0020] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also referred to as "media"), collectively contained in one or more storage devices, that collectively contain machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. The computer-readable storage medium may be, but is not limited to, an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as punch cards or pits / lands formed on the major surface of a disk), or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, is not to be construed as storage in the form of a transient signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through fiber optic cables, electrical signals communicated over wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at some infrequent time during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but the foregoing does not qualify a storage device as transient because the data is not transient while it is stored.

[0021] Computing environment 100 includes an example of an environment for executing at least some of the computer code involved in performing the methods of the invention, such as image manager code 190. In the illustrative example above, image manager code 190 may be used on an image to enhance the editability of the image. Image manager code 190 may function to convert an image, including pixels, into a format that is easier to edit by a user. In addition to image manager code 190, computing environment 100 may include, for example, computer 101, wide area network (WAN) 102, end user device (EUD) 103, remote server 104, public cloud 105, and private cloud 106. In this embodiment, computer 101 includes a set of processors 110 (including processing circuitry 120 and cache 121), a communications fabric 111, volatile memory 112, persistent storage 113 (including operating system 122 and image manager code 190, as identified above), a set of peripheral devices 114 (including a set of user interface (UI) devices 123, storage 124, and a set of Internet of Things (IoT) sensors 125), and a network module 115. Remote server 104 includes a remote database 130. Public cloud 105 includes a gateway 140, a cloud orchestration module 141, a set of host physical machines 142, a set of virtual machines 143, and a set of containers 144.

[0022] Computer 101 may take the form of a desktop computer, a laptop computer, a tablet computer, a smartphone, a smartwatch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or later developed that is capable of executing programs, accessing a network, or querying a database, such as remote database 130. As is well understood in the field of computer technology, and depending on the technology, execution of a computer-implemented method may be distributed among multiple computers and / or among multiple locations. However, in this representation of computing environment 100, to keep the presentation as concise as possible, the detailed discussion focuses on a single computer, specifically computer 101. Although computer 101 is not shown in FIG. 1 within a cloud, it may be located within a cloud. However, computer 101 is not required to reside within a cloud except to any extent expressly indicated.

[0023] Processor set 110 includes one or more computer processors of any type now known or later developed. Processing circuitry 120 may be distributed across multiple packages, e.g., multiple coordinated integrated circuit chips. Processing circuitry 120 may implement multiple processor threads and / or multiple processor cores. Cache 121 is memory located within the processor chip package and is typically used for data or code that should be available for fast access by threads or cores executing on processor set 110. Cache memory is typically organized into multiple levels depending on relative proximity to the processing circuitry. Alternatively, some or all caches for a processor set may be located “off-chip.” In some computing environments, processor set 110 may be designed to operate with qubits and perform quantum computing.

[0024] Computer-readable program instructions are typically loaded onto computer 101 to cause processor set 110 of computer 101 to perform a series of operational steps, thereby realizing a computer-implemented method, such that the instructions so executed instantiate the method specified in the flowcharts and / or descriptions of the computer-implemented method contained herein (collectively referred to as the "methods of the present invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 121 and other storage media discussed below. The program instructions and associated data are accessed by processor set 110 to control and direct the execution of the methods of the present invention. In computing environment 100, at least some of the instructions for performing the methods of the present invention may be stored in image manager code 190 in persistent storage 113.

[0025] Communications fabric 111 is the signal-conducting pathway that allows various components of computer 101 to communicate with one another. Typically, this fabric is made up of switches and conductive pathways, such as switches and conductive pathways that make up buses, bridges, physical input / output ports, etc. Other types of signal communication pathways may be used, such as fiber optic and / or wireless communication pathways.

[0026] Volatile memory 112 may be any type of volatile memory now known or later developed. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, volatile memory 112 is characterized by random access, although this is not required unless expressly indicated. In computer 101, volatile memory 112 is located in a single package and is internal to computer 101; however, alternatively or additionally, volatile memory may be distributed across multiple packages and / or located external to computer 101.

[0027] Persistent storage 113 is any form of non-volatile storage for a computer, now known or later developed. The non-volatility of this storage means that stored data is maintained regardless of whether power is supplied to computer 101 and / or directly to persistent storage 113. While persistent storage 113 may be read-only memory (ROM), typically at least a portion of persistent storage allows data to be written, data to be deleted, and data to be rewritten. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. Operating system 122 may take several forms, such as various known proprietary operating systems employing a kernel or open-source Portable Operating System Interface-type operating systems. The code included in image manager code 190 typically includes at least some of the computer code involved in performing the methods of the invention.

[0028] Peripheral device set 114 includes a set of peripheral devices of computer 101. Data communication connections between peripheral devices and other components of computer 101 may be implemented in various forms, such as Bluetooth connections, near field communication (NFC) connections, connections made by cables (such as universal serial bus (USB)-type cables), insertion-type connections (e.g., Secure Digital (SD) cards), connections made through local area communication networks, and even connections made through wide area networks such as the Internet. In various embodiments, UI device set 123 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smartwatches), keyboards, mice, printers, touchpads, game controllers, and haptic devices. Storage 124 may be external storage, such as an external hard drive, or insertable storage, such as an SD card. Storage 124 may be persistent and / or volatile. In some embodiments, storage 124 may take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer 101 is required to have a large amount of storage (e.g., where computer 101 stores and manages a large database locally), this storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple, geographically distributed computers. IoT sensor set 125 consists of sensors used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.

[0029] Network module 115 is a collection of computer software, hardware, and firmware that enables computer 101 to communicate with other computers over WAN 102. Network module 115 may include hardware such as a modem or Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for communicating data over the Internet. In some embodiments, the network control and network forwarding functions of network module 115 are performed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software-defined networking (SDN)), the control and forwarding functions of network module 115 are performed on physically separate devices, such that the control function manages several different network hardware devices. Computer-readable program instructions for implementing the methods of the present invention may be downloaded to computer 101 from an external computer or external storage device, typically through a network adapter card or network interface included in network module 115.

[0030] WAN 102 is any wide area network (e.g., the Internet) capable of communicating computer data over non-local distances using any technology for communicating computer data now known or later developed. In some embodiments, WAN 102 may be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area, such as a Wi-Fi network. WANs and / or LANs typically include copper transmission cables, optical fiber transmissions, wireless transmissions, and computer hardware such as routers, firewalls, switches, gateway computers, and edge servers.

[0031] End-user device (EUD) 103 is any computer system used and controlled by an end user (e.g., a customer of the enterprise operating computer 101) and may take any of the forms described above in connection with computer 101. EUD 103 typically receives useful and useful data from the operation of computer 101. For example, in the hypothetical case where computer 101 is designed to provide recommendations to the end user, the recommendations would typically be communicated from network module 115 of computer 101 over WAN 102 to EUD 103. In this manner, EUD 103 can display or otherwise present the recommendations to the end user. In some embodiments, EUD 103 may be a client device such as a thin client, a heavy client, a mainframe computer, a desktop computer, and the like.

[0032] Remote server 104 is any computer system that serves at least some data and / or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents a machine that collects and stores useful and useful data for use by other computers, such as computer 101. For example, in the hypothetical case where computer 101 is designed and programmed to provide recommendations based on historical data, then this historical data may be provided to computer 101 from remote database 130 of remote server 104.

[0033] A public cloud 105 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer functionality, particularly data storage (cloud storage) and computing power, without direct active management by users. Cloud computing typically leverages resource sharing to achieve coherence and economies of scale. Direct active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of a cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on various computers comprising a host physical machine set 142, which is the universe of physical computers within and / or available to the public cloud 105. The virtual computing environments (VCEs) typically take the form of virtual machines from a virtual machine set 143 and / or containers from a container set 144. It is understood that these VCEs are stored as images and can be transferred among and between various physical machine hosts, either as images or after instantiation of the VCEs. Cloud orchestration module 141 manages the transfer and storage of images, deploys new instantiations of VCE, and manages active instantiations of VCE deployments. Gateway 140 is a collection of computer software, hardware, and firmware that enables public cloud 105 to communicate over WAN 102.

[0034] Some further description of virtualized computing environments (VCEs) is now provided. A VCE can be stored as an "image." A new, active instance of a VCE can be instantiated from the image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to a feature of an operating system in which the kernel allows the existence of multiple isolated user space instances, called containers. These isolated user space instances typically behave as actual computers from the perspective of programs running within them. A computer program running on a typical operating system may utilize all of the computer's resources, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and of the devices assigned to the container; this feature is known as containerization.

[0035] A private cloud 106 is similar to a public cloud 105, except that the computing resources are available only for use by a single enterprise. While the private cloud 106 is shown in communication with the WAN 102, in other embodiments, the private cloud may be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a composite of multiple clouds of different types (e.g., private, community, or public cloud types), often each implemented by a different vendor. While each of the multiple clouds remains a separate, discrete entity, the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the constituent clouds. In this embodiment, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.

[0036] The illustrative embodiments recognize and take into account several different considerations as described herein. For example, the illustrative embodiments recognize and take into account that the use of digital images can pose challenges. These challenges may arise as a result of digital images being in the form of pixels that reduce the ability to edit or modify the digital images. These challenges may be presented with respect to modifying technical documents, such as software documentation. For example, text and shapes cannot be easily reused or translated. For example, screenshots of frames or menu layouts cannot be easily edited. Instead, a new screenshot is taken to replace the previous screenshot.

[0037] As another example, optical character recognition can be performed on these images, but optical character recognition cannot easily place text in the correct location within the image to recreate meaningful graphical content, such as instructions for a user interface description in software.

[0038] Additionally, older images may not have the desired quality for reuse. Older images may have a resolution that results in the images being unclear or unclear. For example, the resolution of older digital images may be so low that text is not readable. Furthermore, typos, misspelled words, underlying, incorrect meanings, or inaccurate labeling remain in the digital images. Text in photographs, bitmap files, JPEG files, or PNG files cannot be easily edited in these types of files.

[0039] When using these types of files in documentation or other types of content, editing text in these digital images can require a lot of effort in the form of background patchwork, color, and font management. This effort required can be time-consuming and require an experienced user to perform the editing modifications. Similarly, shapes are also not easily modified or changed in these types of files. As a result, the use of these types of files in documentation or other content can make modifying or updating information in the documentation or other content more difficult and time-consuming than desired.

[0040] The use of optical character recognition does not provide the ability to quickly correct or edit within a graphical tool or editor when editing or managing software documentation: the original appearance of text along with other graphics, such as shapes, is not maintained with the desired level of accuracy.

[0041] Thus, with recognition of these and other considerations, the illustrative embodiments provide a computer-implemented method, apparatus, system, and computer program product for editing at least one of text and shapes in images. These images are pixel-based images. The pixels in these images define the text and shapes in the images. Images that include pixels may also be referred to as digital images, rasterized images, or bitmap images.

[0042] In the above illustrative example, an image can be converted into layers used in manipulating components such as text and shapes. In one illustrative example, editable text is created from text in an image composed of pixels. The editable text created from the image has modifiable text attributes. A text layer is created for the image with editable text. The editable text is placed in text positions in the text layer corresponding to the positions of the text in the image. A set of editable shapes is created corresponding to the set of shapes in the image. The editable shape set has modifiable shape attributes. A shape layer is created for the image with a set of editable shapes. The editable shape set has a set of shape positions in the shape layer corresponding to the set of positions of the set of shapes in the image, where the text layer and the shape layer are displayed in a graphical user interface in a display system. In this illustrative example, the text layer and the shape layer can be displayed such that these two layers have the same look or appearance as the image. Editing of these layers can be performed more easily compared to pixels in the image.

[0043] As used herein, "plurality," when used in reference to an item, means one or more of the item. For example, "plurality of different types of networks" refers to one or more different types of networks.

[0044] Furthermore, the phrase "at least one of," when used in conjunction with a list of items, means that one or more different combinations of the items shown in the list may be used, and that only one of each item included in the list may be required. In other words, "at least one of" means that any combination of items and numbers of items from the list may be used, but not all items in the list are required. An item may be a particular object, thing, or category.

[0045] For example, without limitation, "at least one of item A, item B, or item C" may include item A, item A and item B, or item B. This example may also include item A, item B, and item C, or item B and item C. Of course, any combination of these items may be present. In some illustrative examples, "at least one of" may be, for example, without limitation, 2 items A; 1 item B; and 10 items C; 4 items B and 7 items C; or other suitable combinations.

[0046] 2, a pictorial representation of a network of data processing systems is shown in which an illustrative embodiment may be implemented. Network data processing system 200 is a network of computers in which an illustrative embodiment may be implemented. Network data processing system 200 includes network 202, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 200. Network 202 may include connections, such as wire, wireless communication links, or fiber optic cables.

[0047] In the illustrated example, server computer 204 and server computer 206 are connected to network 202 along with storage unit 208. In addition, client device 210 is connected to network 202. Client device 210 may be, for example, a computer, a workstation, or a network computer. As shown, client computer 212, client computer 214, and client computer 216 are examples of client devices 210. Mobile phone 218, tablet computer 220, and smart glasses 222 are additional examples of client devices 210.

[0048] In the illustrated example, server computer 204 provides information such as boot files, operating system images, and applications to client devices 210. In this illustrative example, server computer 204, server computer 206, storage unit 208, and client devices 210 are network devices connecting to network 202, which is the communication medium for these network devices. Some or all of client devices 210 may form an Internet of Things (IoT), where these devices can connect to network 202 and exchange information with each other over network 202.

[0049] In this example, client device 210 is a client of server computer 204. Network data processing system 200 may include additional server computers, client computers, and other devices not shown. Multiple client devices 210 are connected to network 202 using at least one of wired, fiber optic, or wireless connections.

[0050] Program instructions located in network data processing system 200 may be stored on a computer-recordable storage medium and downloaded for use to a data processing system or other device. For example, program instructions may be stored on a computer-recordable storage medium on server computer 204 and downloaded to client device 210 over network 202 for use on client device 210.

[0051] In the depicted example, network data processing system 200 is the Internet, with network 202 representing a worldwide collection of networks and gateways that communicate with each other using the Transmission Control Protocol / Internet Protocol (TCP / IP) suite of protocols. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational, and other computer systems that route data and messages. Of course, network data processing system 200 may also be implemented using a number of different types of networks. For example, network 202 may be comprised of at least one of the Internet, an intranet, a local area network (LAN), a metropolitan area network (MAN), or a wide area network (WAN). Figure 2 is intended as an example, and not as an architectural limitation for different illustrative embodiments.

[0052] As shown, a user 230 at a client computer 212 manipulates an image 232 using a browser 234 running on the client computer 212. In this example, the image 232 is used in software documentation. For example, the image 232 may be a screenshot accompanied by text describing shapes, such as controls or menus, in the screenshot. The user 230 may edit, update, or modify the image 232. For example, the user 230 may correct typographical errors in the text, update the text, change the outline of a shape, or perform other manipulations of the text and shapes.

[0053] In this example, both the text and shapes in image 232 are defined by pixels. Because pixels are used to define the text, image 232 is not easily editable by user 230 in its current format. User 230 can send image 232 to image manager 236, which is located on server computer 204. Image manager 236 can process image 232 to generate new image 238, which has the same appearance as image 232, but in a format that is more easily editable compared to image 232.

[0054] In this example, image manager 236 performs optical character recognition on image 232 to recognize text within image 232. In this example, optical character recognition results in text data that is machine-readable and can be, for example, ASCII codes instead of the pixels used in image 232.

[0055] Additionally, image manager 236 determines the location of the recognized text within image 232. Image manager 236 identifies text attributes for the recognized text within image 232. These text attributes can be, for example, the font name, color, style, and other attributes of the text.

[0056] In this example, image manager 236 creates a first layer containing text from image 232. Furthermore, the text in the first layer is positioned in a position that corresponds to the position of the text in image 232 based on the position of the text in image 232. Text attributes are associated with the text in the first layer.

[0057] As a result, the first layer can display text that has the same appearance as the text in image 232. The difference is that the text in the first layer is more easily editable than the pixels that define the text in image 232.

[0058] Additionally, the image manager 236 detects shapes within the image 232 and generates more easily editable shapes from the shapes detected in the image 232. The shapes are defined using shape data such as vector graphics rather than the pixels used in the image 232.

[0059] Image manager 236 determines the location of the shape within image 232. Image manager 236 also identifies shape attributes for the shape within image 232. These shape attributes can be, for example, the shape's line width, line style, line color, fill color, and other attributes.

[0060] The image manager 236 creates a second layer containing the shapes, the shapes in the second layer at positions corresponding to the positions of the shapes in the image 232. Additionally, shape attributes for the shapes are associated with the shapes in the second layer.

[0061] The second layer can be displayed so that the shapes have the same appearance as the shapes in image 232. The shapes in the second layer are in a format that is machine-readable and more easily editable than the pixels that define the shapes in image 232.

[0062] In this example, image manager 236 combines a first layer containing text and a second layer containing shapes to form new image 238. New image 238 is a form of image 232 that is more easily editable. New image 238 has the appearance of image 232 when displayed.

[0063] As a result, text and shapes in new image 238 can be more easily manipulated compared to manipulating pixels in image 232. For example, shapes defined using vector graphics are easier to edit than shapes defined using pixels. Similarly, text defined using ASCII codes is also easier to edit than text defined using pixels.

[0064] In other words, new image 238 is a version of image 232 that has a format more suitable for easier editing by user 230 than editing pixels. Additionally, new image 238 can be reused for future editing.

[0065] As another illustrative example, a user 240 at a tablet computer 220 may manipulate an image 242 using a program such as a graphics editor 244. In this example, an image manager 246 is located on the tablet computer 220 and is shown as a separate component from the graphics editor 244. In other illustrative examples, the image manager 246 may be part of the graphics editor 244.

[0066] Image manager 246 can function to convert image 242, which has a pixel format, into a new image 250, which has a format that is more easily editable by user 240 using graphics editor 244. In this illustrated example, image manager 246 identifies text and shapes from the pixels in image 242. In addition, image manager 246 determines locations for the text and shapes within image 242. Image manager also identifies text attributes for the text and shape attributes for the shapes within image 242.

[0067] Image manager 246 creates a first layer for text and a second layer for shapes from image 242. In this illustrative example, the positioning of the text in the first layer corresponds to the position of the text in image 242. The positioning of the shapes in the second layer corresponds to the position of the shapes in image 242. Furthermore, text attributes are associated with the text in the first layer and shape attributes are associated with the shapes in the second layer such that the display of these layers provides the same appearance for these elements as in image 242.

[0068] In this illustrative example, user 240 can edit the text in a first layer and the shapes in a second layer independently of each other in new image 250. In another illustrative example, these two layers can be combined into one layer in new image 250. New image 250 can be edited by user 240 using graphics editor 244. Furthermore, new image 250 can be reused to improvise, correct, or translate content found in image 242.

[0069] Thus, the use of layers for text and shapes in this example can aid in image manipulation, such as correcting or modifying digital images, such as bitmap images. Using the layers created in this illustrative example, manipulations can be more easily performed on images for technical graphics, infographics, software screenshots, imaged data tables, flow diagrams, and other types of uses. In a different illustrative example, the use of layers can be implemented in graphical tools. This type of capability can increase at least one of the readability or visibility of elements in a digital image, such as text and shapes, by converting the elements into a more easily editable format.

[0070] 3, a block diagram of an image manipulation environment is shown in accordance with an illustrative embodiment. In this illustrative example, image environment 300 includes components implemented in hardware, such as the hardware shown in network data processing system 200 in FIG.

[0071] In this illustrative example, image management system 302 may function to manage images within image environment 300. The images may take a number of different forms. For example, the images may be selected from at least one of screenshots, scanned images, photographs, banners for web pages, geomaps, bitmaps, and other graphic drawings.

[0072] As shown, image management system 302 includes a computer system 304 and an image manager 306. Image manager 306 is located on computer system 304 and may be implemented in software, hardware, firmware, or a combination thereof. Image manager 306 is an example of image manager code 190 in Figure 1. If software is used, the operations performed by image manager 306 may be implemented in program instructions configured to execute on hardware, such as a processor unit.

[0073] If firmware is used, the operations performed by image manager 306 may be embodied in program instructions and data and stored in persistent memory for execution on a processor unit. If hardware is utilized, the hardware may include circuitry that functions to perform the operations in image manager 306.

[0074] In the above illustrative examples, the hardware can take the form of at least one selected from a circuit system, an integrated circuit, an application-specific integrated circuit (ASIC), a programmable logic device, or any other suitable type of hardware configured to perform multiple operations. With a programmable logic device, the device can be configured to perform multiple operations. The device can be reconfigured at a later time or can be permanently configured to perform multiple operations. Programmable logic devices include, for example, programmable logic arrays, programmable array logic, field programmable array logic, field programmable gate arrays, and other suitable hardware devices. Additionally, these processes can be implemented in organic components integrated with inorganic components or can be composed entirely of organic components to the exclusion of humans. For example, these processes can be implemented as circuits in organic semiconductors.

[0075] Computer system 304 is a physical hardware system and includes one or more data processing systems. When more than one data processing system is present in computer system 304, the data processing systems communicate with each other using a communication medium. The communication medium may be a network. The data processing systems may be selected from at least one of a computer, a server computer, a tablet computer, or some other suitable data processing system.

[0076] As shown, computer system 304 includes a group of processor units 308 capable of executing program instructions 310 that implement the process in the illustrative example. As used herein, "group of," when used in reference to an item, means one or more items. For example, group of processing units 308 may be, or may be, more processor units 308. A processor unit within group of processor units 308 is a hardware device, comprised of hardware circuitry, such as those on integrated circuits, that responds to and processes instructions and program instructions that make a computer function.

[0077] Where the group of processor units 308 executes the program instructions 310 for a process, the group of processor units 308 is one or more processor units that can be on the same computer or on different computers. In other words, a process can be distributed among processor units on the same or different computers in the computer system 304. Furthermore, the group of processor units 308 can be processor units of the same type or different types. For example, the group of processor units 308 can be selected from at least one of a single-core processor, a dual-core processor, a multi-processor core, a general-purpose central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), or some other type of processor unit.

[0078] In this depicted example, image management system 302 can process image 312 to make it more easily editable. As shown, image 312 is made up of pixels 314. A set of text 316 and shapes 318 is presented within image 312. As shown, the set of text 316 and shapes 318 are defined within image 312 using pixels 314. Image 312 may also be referred to as a pixel image, a digital image, or a rasterized image.

[0079] The image manager 306 can create editable text 320 from the text 316 in the image 312. The image manager 306 can analyze the pixels 314 to identify the text 316 in the image 312. For example, the image manager 306 can use an optical character recognition process to recognize the text 316 from the pixels 314 that define the text 316 in the image 312. The editable text 320 can be, for example, characters 321 that are written using a character encoding format such as ASCII or other formats or mechanisms other than the pixels 314.

[0080] Additionally, the image manager 306 may identify modifiable text attributes 322 from the text 316 in the image 312 and associate the modifiable text attributes 322 with the editable text 320. The modifiable text attributes 322 may take a number of different forms. For example, the modifiable text attributes 322 may be selected from at least one of a font name, style, size, color, bold, italic, underline, or other attribute for the editable text 320.

[0081] These modifiable text attributes 322 can be modified to change the appearance of the editable text 320. In this illustrated example, the appearance can be changed for individual characters or groups of text, such as words or phrases, within the editable text 320 using the modifiable text attributes 322.

[0082] Additionally, characters 321 can be changed within editable text 320. In other words, characters within text 321 can be changed from one character to another. For example, in the text "halp," the "a" can be changed to an "e" to obtain the text "help."

[0083] In this illustrative example, a text location 324 is also identified for the editable text 320. For example, the image manager 306 creates a text layer 326 with editable text 320 from the text 316 in the image 312. In this illustrative example, the text layer 326 may have the same dimensions as the image 312. The editable text 320 is placed in a text location 324 in the text layer 326 that corresponds to the location of the text 316 in the image 312.

[0084] For example, text position 324 for editable text 320 may be set to a position corresponding to the position of text 316 in image 312. In this illustrative example, text layer 326 has the same dimensions as image 312. Text position 324 in text layer 326 may have coordinates that correspond to the position of text 316 within pixels 314. The coordinates describing text position 324 in text layer 326 may be based on the location of text 316 within the matrix of pixels 314 such that editable text 320 can be displayed with text layer 326 having the same appearance as text 316 in image 312.

[0085] In this illustrative example, image manager 306 can create a set of editable shapes 330 that correspond to a set of shapes 318 in image 312. In this illustrative example, image manager 306 can use object recognition processing to analyze pixels 314 to identify shapes 318. The set of shapes 318, along with the identities of the shapes 318, can be used to create editable shapes 330. The set of editable shapes 330 can be described using vector graphics data. For example, editable shapes 330 can be defined in a Cartesian plane with objects such as points, lines, curves, and polygons.

[0086] Additionally, the image manager 306 can identify modifiable shape attributes 332 from the shapes 318 in the image 312 and associate the modifiable shape attributes 332 with the set of editable shapes 330. The modifiable shape attributes 332 can take a number of different forms. For example, the modifiable shape attributes 332 can be selected from at least one of a line width, a line style, a line color, a transparency level, a fill color, a fill pattern, an alignment, or other attributes for the set of editable shapes 330. These attributes can be changed to change the appearance of the set of editable shapes 330. These attributes can be changed for each individual shape in the set of editable shapes 330. Additionally, the actual shape of the editable shapes in the editable shapes 330 can also be changed. For example, the length of a rectangle can be increased. As another example, a triangle can be manipulated to become a pentagon, an octagon, or other shape.

[0087] In this illustrative example, shape locations 334 may also be identified for the set of editable shapes 330. The image manager 306 creates a shape layer 336 using the set of editable shapes 330 created from the set of shapes 318 in the image 312. In this illustrative example, the shape layer 336 has the same dimensions as the image 312. The set of editable shapes 330 are arranged in a set of shape locations 334 in the shape layer 336 that correspond to the locations of the set of shapes 318 in the image 312.

[0088] For example, the set of shape locations 334 for the set of editable shapes 330 can be set to locations that correspond to the locations of the set of shapes 318. In this example, the shape layer 326 has the same dimensions as the image 312. The shape locations 334 can have coordinates that correspond to the locations of the shapes 318 within the pixels 314. For example, the coordinates describing the set of shape locations 334 within the text layer 326 can be based on where the set of shapes 318 are located within the matrix of pixels 314 so that the shape layer 336 can be displayed with the set of editable shapes 330 having the same appearance as the set of shapes 318 within the image 312.

[0089] In creating the text layer 326 and the shape layer 336 to have the same appearance as the image 312, current text attributes 340 can be identified for the text 316 based on an analysis of the pixels 314 defining the text 316. Additionally, current shape attributes 342 can be identified for the set of shapes 318 by analyzing the pixels 314 defining the shapes 318. Analysis of the pixels to identify these current attributes can include analysis of pixel intensity, pixel color, and other attributes of the pixels defining the text 316 and shapes 318.

[0090] Modifiable text attributes 322 can be set to current text attributes 340, and modifiable shape attributes 332 can be set to current shape attributes 342. Using these current attributes along with the set of text positions 324 and shape positions 334, the editable text 320 in text layer 326 and the set of editable shapes 330 in shape layer 336 can have the same appearance as the text 316 and shapes 318 in image 312 when the layers are displayed. In other words, the modifiable text attributes 322 have initial values ​​such that the editable text 320 has the appearance of the text 316 in image 312, and the modifiable shape attributes 332 have initial values ​​such that the set of editable shapes 330 has the appearance of the set of shapes 318 in image 312.

[0091] In this illustrative example, the text layer 326 and the shape layer 336 may be displayed to a user 352 on a human-machine interface 350. As shown, the human-machine interface 350 includes a display system 354 and an input system 356.

[0092] Display system 354 is a physical hardware system and includes one or more display devices capable of displaying graphical user interface 358. The display devices may include at least one of a light-emitting diode (LED) display, a liquid crystal display (LCD), an organic light-emitting diode (OLED) display, a computer monitor, a projector, a flat panel display, a head-up display (HUD), a head-mounted display (HMD), or some other suitable device capable of outputting information for visual presentation of information.

[0093] As shown, text layer 326 and shape layer 336 can be displayed to user 352 in a graphical user interface 358 on display system 354. User 352 is a person who can interact with graphical user interface 358 through user input generated by input system 356. Input system 356 is a physical hardware system and can be selected from at least one of a mouse, keyboard, touchpad, trackball, touchscreen, stylus, motion-sensing input device, gesture detection device, data glove, cyber glove, haptic feedback device, or some other suitable type of input device.

[0094] In this manner, user 352 can more easily edit the set of editable text 320 in text layer 326 and editable shapes 330 in shape layer 336 than can edit the text 316 and shapes 318 defined by pixels 314 in image 312. In this illustrative example, text layer 326 can be overlaid on shape layer 336, or shape layer 336 can be overlaid on text layer 326, in graphical user interface 358 to provide the appearance of image 312.

[0095] Displaying these layers within the graphical user interface 358 allows the user 352 to select one of the layers to edit the elements within the layer. For example, the user 352 can select the text layer 326 to edit the editable text 320. In another illustrative example, the user 352 can select the shapes layer 336 to edit the set of editable shapes 330.

[0096] This editing of the editable text 320 may include changing characters 321 in the editable text 320 to correct a typo, updating the editable text 320, adding new content, translating the editable text 320 into another language, or performing other modifications. Additionally, editing may include changing modifiable text attributes 322, such as font size, color, or other modifiable text attributes 322, for the editable text 320.

[0097] The edits performed by the user 352 may also include changing the editable shape 330. For example, shapes may be added to the editable shape 330, shapes may be removed from the editable shape 330, the editable shape 330 may be modified, or some combination thereof. Additionally, the appearance of the editable shape 330 may be changed by changing the modifiable shape attributes 332. For example, the line thickness may be increased, the color may be changed, or other modifiable shape attributes may be changed.

[0098] In this illustrative example, these two layers can form an editable image 360. Editable image 360 ​​is a new image that can be displayed in a graphical user interface 358 in display system 354. Furthermore, in this example, the two layers can be separate from each other. The two layers can be displayed on top of each other, one at a time, or in some other manner.

[0099] In another illustrative example, the image manager 306 can combine the text layer 326 and the shape layer 336 to form an editable image 360. In this example, after combining these two layers, only a single layer is presented.

[0100] Thus, image manager 306 can create editable text 320 and editable shapes 330 in place of those elements in text layer 326 and shape layer 336 at corresponding locations in those layers, resulting in editable image 360 ​​having the same appearance as image 312. Further, using the identification of modifiable text attributes 322 for editable text 320 and modifiable shape attributes 332 for editable shape 330, achieve the same appearance between editable image 360 ​​and image 312. In addition, image manager 306 creates editable text 320 with modifiable text attributes 322 in a format that is more easily manipulated compared to the same text in text 316 defined by pixels 314 in image 312. Image manager 306 creates editable shape 330 in a format that is more easily manipulated compared to the corresponding shape 318 defined by pixels 314 in image 312.

[0101] The computer system 304 can be configured to perform at least one of the steps, operations, or actions described in the different illustrative examples using software, hardware, firmware, or a combination thereof. As a result, the computer system 304 functions using an image manager 306 that allows for the manipulation of text and shapes with less effort compared to manipulating text and shapes in images constructed from pixels.

[0102] In the illustrative example, the use of an image manager 306 within the computer system 304 integrates the process into a practical application for allowing a user to manipulate images. In this illustrative example, the image manager 306 is a tool that can convert images from a pixel format to another format that allows for easier editing.

[0103] For example, text and shapes defined by pixels in an image can be converted into computer-readable text and shapes. The computer-readable text can be, for example, text represented by ASCII codes. This type of representation of text can allow for easier editing of the text compared to editing the same text represented as pixels using a graphics tool or application. As another example, shapes can be represented using vector graphics data that is not in the form of pixels.

[0104] The illustration of image environment 300 in Figure 3 is not meant to imply physical or architectural limitations to the manner in which an illustrative embodiment may be implemented. Other components in addition to or instead of those shown may be used. Some components may be unnecessary. Also, blocks are presented to illustrate some functional components. One or more of these blocks may be combined, divided, or combined and divided into different blocks when implemented in an illustrative embodiment.

[0105] For example, one or more layers can be presented in addition to text layer 326 and shape layer 336. For example, an additional shape layer can be presented, and editable shapes placed within these two shape layers can be based on various criteria, such as shape type, shape position, shape color, or other criteria. As another example, a separate text layer can be presented. Along with the two text layers, editable text can be placed within these layers using different criteria. For example, editable text placed within shapes can be placed in one text layer, and editable text placed outside of shapes can be placed in another text layer.

[0106] 4, a block diagram of a data flow for generating a new image from an image containing pixels is shown, according to an example embodiment. As shown, an application 402 receives an image 400 for manipulation.

[0107] The application 402 includes components that can place the image 400 in a format that is more easily editable or manipulated. In this illustrative example, the image manager 306 can implement the application 402 to convert the image 400 into a more easily editable format. The application 402 can take a number of different forms. For example, the application 402 can be a graphics tool, a graphic arts program, a web design application, a presentation program, a word processing application, a computer-aided design application, or any other suitable type of application.

[0108] Image 400 is a pixel-based image and includes pixels 403. For example, image 400 can be a bitmap, a photograph, a scanned document, or any other type of image made up of pixels.

[0109] In this illustrative example, application 402 has several different components that can manipulate image 400. As shown, these components include positioning 404, extraction 406, layer creation 408, manipulation 410, and content output 411.

[0110] Positioning 404 in application 402 identifies text locations for text 412 within image 400 (block 416). Positioning 404 also identifies shape locations for shapes 414 within image 400 (block 418). These locations may be described using pixel coordinates for image 400. For example, pixel coordinates may be obtained for the center of each object, such as a character in text 412, for a shape within shape 414.

[0111] In this illustrative example, extraction 406 extracts text 412 (block 420). Extracting text 412 from image 400 in block 420 results in text data that describes the text 412 without using pixels. For example, extracting text 412 may result in text data in the form of ASCII codes that identify characters in text 412 in machine-readable form. Additionally, extracting text 412 also results in identifying text attributes for text 412. As a result, text 412 is editable text.

[0112] Extraction 406 also extracts shape 414 (block 422). At block 422, machine-readable shape data is generated as a result of extracting shape 414. This shape data may be, for example, vector graphics data. Shape 414 may be described using vector graphics data such as points, lines, curves, or other graphical elements. In addition, this extraction also identifies shape attributes for shape 414. As a result, shape 414 is an editable shape.

[0113] In this illustrative example, layer creation 408 creates layer 1 (block 424). In this illustrative example, layer 1 includes text 412 in a location that corresponds to the location of text 412 in image 400. Additionally, layer creation 408 associates text attributes with text 412. As a result, displaying layer 1 results in text 412 being displayed, and the appearance of text 412 matches the appearance of text 412 in image 400.

[0114] Layer creation 408 creates layer 2 (block 426). In this illustrative example, shape 414 in layer 2 has a position that corresponds to the position of shape 414 in image 400. Additionally, layer creation 408 associates shape attributes with shape 414. Thus, displaying layer 2 results in an appearance of shape 414 that matches shape 414 in image 400. Thus, layers 1 and 2 can be displayed with an appearance similar to image 400.

[0115] In this illustrative example, operation 410 displays layer 1, layer 2, or both layers in a graphical user interface in response to user input requesting editing, and one or more of these layers can be corrected or otherwise manipulated.

[0116] Operation 410 may display at least one of layer 1 or layer 2 in a graphical user interface. Operation 410 may receive user input to manipulate text 412 in layer 1 (block 428). Operation 410 may also receive user input to manipulate shape 414 in layer 2 (block 430).

[0117] The operations performed in block 428 may include modifying text attributes for the text 412. For example, the font name, style, size, color, bold, italic, underline, or other text attributes may be changed. Additionally, manipulation of characters within the text 412 may also be performed. For example, the operations performed by operation 410 may include copying, pasting, deleting, or other manipulation of characters.

[0118] The operations performed in block 430 may include modifying shape attributes for shape 414. For example, the line width, line style, line color, transparency level, fill color, fill pattern, alignment, or other shape attributes may be changed. As another example, the operations on shape 414 may include inserting a new shape, deleting a shape, modifying a shape, moving a shape, or other types of operations.

[0119] After one or more operations are performed by operation 410 in application 402, content output 411 outputs new image 432. New image 432 can be saved for future use and manipulation. In these illustrative examples, new image 432 can be formed from combining layer 1 and layer 2. In other illustrative examples, the layers can be kept separate within new image 432.

[0120] Furthermore, new image 432 can be manipulated at a future time without requiring reprocessing of image 400. In these illustrative examples, the manipulations formed by application 402 using manipulations 410 require less effort from the user compared to image 400 including pixel 403.

[0121] The descriptions of the different operations in different blocks performed by processes in application 402 are described in a particular order. For example, the processing of text 412 is described before the processing of shape 414. In another illustrative example, shape 414 can be processed before processing text 412. As another example, text 412 and shape 414 can be extracted before identifying the locations of text 412 and shape 414.

[0122] 5-7, diagrams of images and layers are shown according to example embodiments that are examples of images that may be processed by image manager 306 in FIG. 3 and examples of layers that may be created and displayed by image manager 306 in FIG. 3 and displayed on graphical user interface 358 in display system 354 in FIG. 3.

[0123] Referring to Figure 5, a diagram of image and text layers is shown in accordance with an exemplary embodiment. In this illustrative example, image 500 is an example of image 312 in Figure 3. In this illustrative example, image 500 is a digital image comprising pixels. Text and shapes can be seen within image 500.

[0124] In this figure, a text layer 502 is created from processing an image 500. In this illustrated example, the text layer 502 has the same dimensions as the image 500. In this manner, the position for the text in the image 500 can be correlated to the position for the corresponding text in the text layer 502.

[0125] As shown, optical character recognition is used to extract text from image 500. Modifiable text attributes are generated based on analyzing pixels for text in image 500. For example, modifiable text attributes may be determined based on pixel color and intensity for pixels defining text in image 500. Additionally, the location of the text within image 500 is identified. The modifiable text attributes in this example may be font name, style, size, and color.

[0126] This information is used to create text layer 502. As shown, the text in text layer 502 has the appearance of the text in image 500. For example, text 510 in image 500 at location 512 is "Compression Options." In this illustrative example, location 512 may be the pixel coordinate of a character for text 510. In another illustrative example, the center of each character in text 510 may be used to identify the position of the character within text 510.

[0127] Text 514 is an editable version of text 510 with changeable text attributes and is located at location 516 in text layer 502. Location 512 in image 500 and location 516 in text layer 502 correspond to one another. Because text layer 502 has the same dimensions as image 500, a similar coordinate system can be used to position text 514.

[0128] As a result, the positioning of text 514 in text layer 502 provides the same appearance as text 510 at location 512 in image 500. In addition to using corresponding locations, this same appearance can also be provided by using the same text attributes so that the characters in text 514 have the appearance of the characters in text 510.

[0129] 6, an illustration of an image and shape layer is shown in accordance with an exemplary embodiment. As shown, shape layer 600 is shown relative to image 500. In this example, shape layer 600 has the same dimensions as image 500. In this manner, the location of shapes identified in image 500 can be correlated to their location within shape layer 600.

[0130] In this illustrative example, shapes are extracted from image 500 and used to create shape layer 600. The shapes are defined using shape data, such as vector graphics data. The position of the shape in image 500 can be used to locate a corresponding editable shape in shape layer 600. Additionally, modifiable shape attributes are identified and used to display the shape in shape layer 600. In this illustrated example, the modifiable shape attributes can include line color, line width, and line style.

[0131] For example, rounded rectangle 602 is one of the shapes identified in image 500 by analyzing the pixels in image 500 and has location 604 in image 500. Rounded rectangle 610 is placed at location 612 in shape layer 600 using the determination of location 604 for rounded rectangle 602 in image 500.

[0132] The position of the rounded rectangle 610 can be determined in a number of different ways. For example, the position can be based on pixel coordinates for the outline of the rounded rectangle 610. In another illustrative example, the position can be determined from the location of the center of the rounded rectangle 610.

[0133] In an illustrative example, this position information is used to give rounded rectangle 610 in shape layer 600 the same appearance as rounded rectangle 602 in image 500. Rounded rectangle 610 has a position 612 in shape layer 600 that corresponds to position 604 of rounded rectangle 602 in image 500. This same appearance of rounded rectangle 610 also involves using the same shape attributes so that rounded rectangle 610 has the appearance as rounded rectangle 602 in addition to the corresponding position.

[0134] 7, a diagram of a new image including combined layers is shown, according to an exemplary embodiment. In this illustrative example, text layer 502 and shape layer 600 are combined to form combined layer 700 for new image 702. As shown, the original appearance of image 500 is maintained in new image 702. In other words, new image 702 has the same appearance as image 500.

[0135] Referring now to FIG. 8, a flowchart of a process for creating editable text with changeable text attributes is shown, according to an exemplary embodiment. The process in FIG. 8 may be implemented in hardware, software, or both. If implemented in software, the process may take the form of program instructions executed by one or more processor units located in one or more hardware devices in one or more computer systems. The process shown in FIG. 8 may be implemented using image management system 302 in FIG. 3. For example, the process may be implemented in image manager 306 in computer system 304 in image management system 302 in FIG. 3.

[0136] The process begins by creating editable text from text in an image, where the editable text has modifiable text attributes (step 800). The process creates a text layer for the image with the editable text created from the text in the image, where the editable text is placed in a text position in the text layer that corresponds to the position of the text in the image (step 802).

[0137] The process creates a set of editable shapes corresponding to the set of shapes in the image, where the editable shape set has modifiable shape attributes (step 804). The process forms a shape layer for the image with the set of editable shapes, where the editable shape set has a set of shape positions in the shape layer that correspond to the set of positions of the set of shapes in the image (step 806). The process then terminates. The text layer and the shape layer can be displayed in a graphical user interface in a display system.

[0138] 9, a flowchart of a process for manipulating editable text or editable shapes is shown, according to an example embodiment. The steps in this figure are examples of additional steps that may be used within the operations in the process in FIG.

[0139] The process begins by displaying a text layer and a shape layer in a graphical user interface on a display system (step 900). The process receives user input to manipulate at least one of the set of editable text or editable shapes (step 902). In response to receiving the user input, the process modifies at least one of the set of editable text or editable shapes (step 904). The process then terminates.

[0140] 10, a flowchart of a process for combining text and shape layers into an editable image is shown, according to an example embodiment. The steps in this figure are examples of additional operations that may be used within the steps in the process in FIG.

[0141] The process combines the text layer and the shape layer into an editable image containing a set of editable text and editable shapes, step 1000. The process then ends.

[0142] 11, a flowchart of a process for determining the location of text and shapes is shown, in accordance with an exemplary embodiment. The steps in this figure are examples of additional steps that may be used within the operations in the process in FIG.

[0143] The process begins by determining text locations for editable text from locations of the text in the image (step 1100). The process determines a set of shape locations for a set of editable shapes from a set of locations for a set of shapes in the image (step 1102).

[0144] 12, an illustration of a flowchart of a process for creating editable text is shown, in accordance with an illustrative embodiment. The process shown in FIG. 12 is an example of one implementation for operation 800 in FIG. 8.

[0145] The process begins by performing optical character recognition to identify editable text from the pixels forming the text in the image (step 1200). The optical character recognition results in text data, such as ASCII codes, that define the text recognized in the image. The process uses the pixels forming the text in the image to identify a current set of text attributes for the editable text (step 1202). The process sets the modifiable text attributes to the current text attributes (step 1204). The process then terminates.

[0146] 13, a flowchart of a process for creating a set of editable shapes is shown in accordance with an illustrative embodiment. The process shown in FIG. 13 is an example of one implementation for operation 804 in FIG. 8.

[0147] The process begins by performing object recognition to identify a set of editable shapes from the pixels forming the set of shapes in the image (step 1300). In step 1300, the object recognition results in shape data, such as vector graphics data, that defines the shapes in the image.

[0148] The process uses the pixels forming the set of shapes in the image to identify a set of current shape attributes for the set of shapes in the image (step 1302). The process sets the modifiable shape attributes to the current shape attributes (step 1304). The process then terminates.

[0149] The flowcharts and block diagrams in the different depicted embodiments illustrate the architecture, functionality, and operation of some possible implementations of apparatuses and methods in example embodiments. In this regard, each block in a flowchart or block diagram may represent at least one of a module, a segment, a function, or a portion of an operation or step. For example, one or more of these blocks may be implemented as program instructions, hardware, or a combination of program instructions and hardware. If implemented in hardware, the hardware may take the form of, for example, an integrated circuit that is manufactured or configured to perform one or more operations in the flowchart or block diagram. If implemented as a combination of program instructions and hardware, an implementation may take the form of firmware. Each block in a flowchart or block diagram may be implemented using dedicated hardware and a dedicated hardware system that performs different operations or combinations of program instructions executed by the dedicated hardware.

[0150] In some alternative implementations of the exemplary embodiments, the function or functions shown in the blocks may occur out of the order shown in the figures. For example, in some cases, two blocks shown in succession may be executed substantially concurrently, or the blocks may even be executed in the reverse order, depending on the functionality involved. Also, other blocks may be added in addition to the blocks shown in a flowchart or block diagram.

[0151] Referring now to Figure 14, a block diagram of a data processing system is shown in accordance with an illustrative embodiment. Data processing system 1400 may be used to implement server computer 204, server computer 206, and client device 210 in Figure 2. Data processing system 1400 may also be used to implement computer system 304. In this illustrative example, data processing system 1400 includes a communications framework 1402 that provides communications between a processor unit 1404, a memory 1406, persistent storage 1408, a communications unit 1410, an input / output unit 1412, and a display 1414. In this example, communications framework 1402 takes the form of a bus system.

[0152] The processor unit 1404 functions to execute instructions for software loaded into the memory 1406. The processor unit 1404 includes one or more processors. For example, the processor unit 1404 may be selected from at least one of a multi-core processor, a central processing unit (CPU), a graphics processing unit (GPU), a physical processing unit (PPU), a digital signal processor (DSP), a network processor, or any other suitable type of processor. Furthermore, the processor unit 1404 may be implemented using one or more heterogeneous processor systems, where a main processor is presented along with secondary processors on a single chip. As another illustrative example, the processor unit 1404 may be a symmetric multiprocessor system including multiple processors of the same type on a single chip.

[0153] Memory 1406 and persistent storage 1408 are examples of storage device(s) 1416. A storage device is any number of pieces of hardware capable of temporarily, permanently, or both temporarily and permanently storing information such as, for example, without limitation, data, program instructions in a functional form, or other suitable information. In these illustrative examples, storage device(s) 1416 may also be referred to as a computer-readable storage device. Memory 1406 in these examples may be, for example, random access memory or any other suitable volatile or non-volatile storage device. Persistent storage 1408 may take various forms, depending on the particular implementation.

[0154] For example, persistent storage 1408 may comprise one or more components or devices. For example, persistent storage 1408 may be a hard drive, a solid-state drive (SSD), a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage 1408 may also be removable. For example, a removable hard drive may be used for persistent storage 1408.

[0155] Communications unit 1410 in these illustrative examples provides for communication with other data processing systems or devices, hi these illustrative examples, communications unit 1410 is a network interface card.

[0156] Input / output unit 1412 allows for the input and output of data to and from other devices connected to data processing system 1400. For example, input / output unit 1412 may provide a connection for user input through at least one of a keyboard, a mouse, or some other suitable input device. Further, input / output unit 1412 may send output to a printer. Display 1414 provides a mechanism for displaying information to a user.

[0157] Instructions for at least one of the operating system, applications, or programs may be located in storage devices 1416, which are in communication with processor unit 1404 through communications framework 1402. The processes of the different embodiments may be performed by processor unit 1404 using computer-implemented instructions that may be located in a memory, such as memory 1406.

[0158] These instructions are referred to as program instructions, computer-usable program instructions, or computer-readable program instructions, that are read and executed by a processor in processor unit 1404. The program instructions in different embodiments may be embodied on different physical or computer-readable storage media, such as memory 1406 or persistent storage 1408.

[0159] The program instructions 1418 are located in a functional form on a computer-readable medium 1420 that is selectively removable and that can be loaded onto or transferred to the data processing system 1400 for execution by the processor unit 1404. In these illustrative examples, the program instructions 1418 and the computer-readable medium 1420 form a computer program product 1422. In the illustrative example, the computer-readable medium 1420 is a computer-readable storage medium 1424.

[0160] The computer readable storage medium 1424 is not a medium that propagates or transmits the program instructions 1418, but rather a physical or tangible storage device used to store the program instructions 1418. As used herein, the computer readable storage medium 1424 is not to be construed as a transitory signal per se, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal transmitted through a wire.

[0161] Alternatively, the program instructions 1418 may be transferred to the data processing system 1400 using a computer-readable signal medium. The computer-readable signal medium may be a signal, such as a propagated data signal containing the program instructions 1418. For example, the computer-readable signal medium may be at least one of an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals may be transmitted over a connection, such as a wireless connection, fiber optic cable, coaxial cable, a wire, or any other suitable type of connection.

[0162] Additionally, as used herein, "computer-readable medium 1420" may be singular or plural. For example, the program instructions 1418 may be located in computer-readable medium 1420 in the form of a single storage device or system. In another example, the program instructions 1418 may be located in computer-readable medium 1420 distributed across multiple data processing systems. In other words, some of the program instructions 1418 may be located in one data processing system, while other instructions in the program instructions 1418 may be located in a single data processing system. For example, some of the program instructions 1418 may be located in computer-readable medium 1420 on a server computer, while another portion of the program instructions 1418 may be located in computer-readable medium 1420 located on a set of client computers.

[0163] The different components illustrated for data processing system 1400 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. In some illustrative examples, one or more of the components may be incorporated into or otherwise form a part of another component. For example, memory 1406, or portions thereof, may be incorporated into processor unit 1404 in some illustrative examples. The different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of those illustrated for data processing system 1400. Other components illustrated in FIG. 14 may be varied from the illustrated illustrative examples. The different embodiments may be implemented using any hardware device or system capable of executing program instructions 1418.

[0164] Thus, exemplary embodiments of the present invention provide a computer-implemented method, computer system, and computer program product for manipulating elements in an image, such as text and shapes. In one illustrative example, editable text is created from text in an image. The editable text has modifiable text attributes. A text layer is formed for the image with the editable text created from the text in the image. The editable text is placed in text positions in the text layer corresponding to the positions of the text in the image. A set of editable shapes is created corresponding to the set of shapes in the image. The set of editable shapes has modifiable shape attributes. A shape layer is formed for the image with the set of editable shapes. The set of editable shapes has a set of shape positions in the shape layer corresponding to the set of positions of the set of shapes in the image. In one example, the text layer and the shape layer are displayed in a graphical user interface in a display system.

[0165] In an illustrative example, a text layer and a shape layer can be displayed such that these two layers have the same look or appearance as the image, and editing of these layers can be performed more easily compared to pixels in the image.

[0166] The image manager in the illustrative example includes a process that may be implemented in an application such as a graphics editor, a web design program, a computer-aided design program, or other type of application. The new image generated has the same appearance as the original image through the positioning process described in the different examples.

[0167] Additionally, in illustrative examples, software user interface screenshots can be converted to images and text edits can be performed on these images. Additionally, conceptual graphics and diagrams can be corrected or updated. In different illustrative examples, inaccurate wording, typographical errors, spelling mistakes, and other issues can be more easily corrected.

[0168] Additionally, using the illustrative example, a less clear image can be reused and improved to create a new image that includes editable text and editable shapes. The editable text and editable shapes can have a sharper appearance while maintaining the same appearance. In other words, the new image does not need to exactly match the original image, including the pixels. As another example, a geographic map can be updated and recreated. Map text and terrain contours can be more easily created in a different language from an original map in one language. Also, the use of editable text and editable shapes in the new image can enhance search capabilities compared to the use of pixels in the original image.

[0169] The descriptions of different illustrative embodiments are presented for purposes of illustration and description and are not intended to be exhaustive or limited to the disclosed forms of embodiments. The different illustrative examples describe components that perform actions or operations. In the illustrative embodiments, the components may be configured to perform the described actions or operations. For example, the components may have a configuration or design for the structure that provides the components with the ability to perform the actions or operations described in the illustrative examples as being performed by the components. Furthermore, to the extent the terms "includes," "including," "has," "contains," and variations thereof are used herein, such terms are intended to be inclusive in a manner similar to the open transition term "comprises," without excluding any additional or other elements.

[0170] The description of various embodiments of the present invention is presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Not all embodiments include all of the features described in the illustrative examples. Furthermore, different exemplary embodiments may provide different features compared to other exemplary embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. 1. A computer-implemented method for manipulating an image composed of pixels, the computer-implemented method comprising: creating, by a group of processor units, editable text from text in the image, the editable text having modifiable text attributes; forming, by the group of processor units, a text layer for the image with the editable text created from the text in the image, the editable text being placed in a text position in the text layer corresponding to a position of the text in the image; creating, by the group of processor units, a set of editable shapes corresponding to a set of shapes in the image, the set of editable shapes having modifiable shape attributes; forming, by the group of processor units, a shape layer for the image with the set of editable shapes, the set of editable shapes having a set of shape positions in the shape layer corresponding to a set of positions of the set of shapes in the image.

1. A computer-implemented method comprising:

2. displaying, by the group of processor units, the text layer and the shape layer in a graphical user interface on a display system; receiving, by the group of processor units, user input to manipulate at least one of the editable text or the set of editable shapes; The computer-implemented method of claim 1 further comprising:

3. combining, by the group of processor units, the text layer and the shape layer into an editable image comprising the set of editable text and editable shapes. The computer-implemented method of claim 1 further comprising:

4. The computer-implemented method of claim 3 , wherein the editable image has the appearance of the image.

5. determining, by the group of processor units, the text position of the editable text from the position of the text in the image; determining, by the group of processor units, the set of shape positions of the set of editable shapes from the set of positions of the set of shapes in the image; The computer-implemented method of claim 1 further comprising:

6. generating, by the group of processor units, the editable text from the text in the image, the editable text having the modifiable text attributes, comprising: performing, by the group of processor units, optical character recognition to identify the editable text from the pixels forming the text in the image; identifying, by the group of processor units, a current set of text attributes for the editable text using the pixels forming the text in the image; setting, by the group of processor units, the changeable text attributes to the current text attributes. The computer-implemented method of claim 1 , comprising:

7. generating, by the group of processor units, the set of editable shapes corresponding to the set of shapes in the image, the set of editable shapes having the changeable shape attributes, comprising: performing, by the group of processor units, object recognition to identify the set of editable shapes from the pixels forming the set of shapes in the image; identifying, by the group of processor units, a current set of shape attributes for the set of shapes in the image using the pixels forming the set of shapes in the image; setting the changeable shape attributes to the current shape attributes by the group of processor units. The computer-implemented method of claim 1 , comprising:

8. The computer-implemented method of claim 1 , wherein the modifiable text attributes are selected from at least one of font name, style, size, color, bold, italic, or underline.

9. The computer-implemented method of claim 1 , wherein the modifiable shape attributes are selected from at least one of line width, line style, line color, transparency level, fill color, fill pattern, or alignment.

10. 2. The computer-implemented method of claim 1, wherein the modifiable text attributes have initial values ​​such that the editable text has the appearance of the text in the image, and the modifiable shape attributes have initial values ​​such that the set of editable shapes has the appearance of the set of shapes in the image.

11. a group of processor units, the group of processor units comprising: Creating editable text from text in an image composed of pixels, wherein the editable text has modifiable text attributes; forming a text layer for the image with the editable text created from the text in the image, wherein the editable text is placed in a text position in the text layer corresponding to the position of the text in the image; creating a set of editable shapes corresponding to a set of shapes in the image, wherein the set of editable shapes has modifiable shape attributes; forming a shape layer for the image with the set of editable shapes, the set of editable shapes having a set of shape positions in the shape layer corresponding to a set of positions of the set of shapes in the image; Execute the program instructions as follows: Computer system.

12. The group of processor units comprises: displaying the text layer and the shape layer in a graphical user interface on a display system; receiving user input to manipulate at least one of the editable text or the set of editable shapes; Execute the program instructions as follows:

12. The computer system of claim 11.

13. The group of processor units comprises: Combining the text layer and the shape layer into an editable image that includes the editable text and the set of editable shapes.

12. The computer system of claim 11, wherein the computer system executes program instructions such that

14. The computer system of claim 13 , wherein the editable image has the appearance of the image.

15. The group of processor units comprises: determining the text position of the editable text from the position of the text in the image; determining the set of shape positions for the set of editable shapes from the set of positions for the set of shapes in the image 12. The computer system of claim 11, wherein the computer system executes program instructions such that

16. The computer system of claim 11 , wherein the modifiable text attributes are selected from at least one of font name, style, size, color, bold, italic, or underline.

17. 12. The computer system of claim 11, wherein the modifiable shape attributes are selected from at least one of line width, line style, line color, transparency level, fill color, fill pattern, or alignment.

18. 12. The computer system of claim 11, wherein the modifiable text attributes have initial values ​​such that the editable text has the appearance of the text in the image, and the modifiable shape attributes have initial values ​​such that the set of editable shapes has the appearance of the shapes in the image.

19. 1. A computer program product for manipulating an image composed of pixels, the computer program product comprising a computer readable storage medium having program instructions embodied thereon, the program instructions being configured to be read by a computer system. creating editable text from the text in the image, the editable text having modifiable text attributes; forming a text layer for the image with the editable text created from the text in the image, the editable text being placed in a text position in the text layer corresponding to the position of the text in the image; creating a set of editable shapes corresponding to the set of shapes in the image, the set of editable shapes having modifiable shape attributes; forming a shape layer for the image with the set of editable shapes, the set of editable shapes having a set of shape positions in the shape layer corresponding to a set of positions of the set of shapes in the image; a computer program product executable by said computer system to cause said computer system to perform the method of

20. displaying the text layer and the shape layer in a graphical user interface on a display system; receiving user input to manipulate at least one of the editable text or the set of editable shapes; 20. The computer program product of claim 19, further comprising: