Image creation by location of recreated text and shape
By converting text and shapes in digital images into editable hierarchies, optical character recognition and object recognition technology are used to solve the problem of difficulty in editing digital images in the prior art, and convenient text and shape editing is achieved while maintaining the visual appearance of the image.
Patent Information
- Application Number
- CN202380071824.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-10-10
- Filing Date
- 2023-05-11
- Publication Date
- 2025-05-16
AI Technical Summary
The prior art is difficult to effectively edit text and shapes in digital images, especially to make modifications while maintaining the visual appearance of the image.
By converting text and shapes in images into editable hierarchies, optical character recognition and object recognition technologies are used to generate variable text and shape attributes, making text and shape more easily edited.
It realizes convenient editing of text and shapes in digital images, reducing complexity and time-consuming in the editing process while maintaining the visual appearance of the image.
Smart Images

Figure CN120019414A_ABST
Abstract
Description
Background Art 1. Technical Field
[0001] The present disclosure relates generally to an improved computer system and, more particularly, to a computer-implemented method, apparatus, system, and computer program product for locating text and shapes from layers of an image for manipulation.
[0002] 2. Description of related technologies:
[0003] A digital image is an image composed of picture elements. These picture elements are also called pixels. These pixels may have values that define the spatial coordinates of the pixels within the image. The spatial coordinates may be represented using values on the x-axis and y-axis. In addition, pixels may have values for pixel attributes, such as intensity, color, or grayscale. These types of images may also be referred to as rasterized or bitmap images.
[0004] 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 also take other forms, such as scanned images, photographs, banners, geographic maps, bitmaps of web pages, and other graphical depictions. Summary of the invention
[0005] According to an exemplary embodiment, a computer-implemented method manipulates an image composed of pixels. A group of processor units creates editable text based on text in the image. The editable text has changeable text attributes. The group of processor units forms a text layer of the image with the editable text. The editable text is located in a text position in the text layer corresponding to the position of the text in the image. The group of processor units creates a group of editable shapes corresponding to a group of shapes in the image, wherein the group of editable shapes has changeable shape attributes. The group of processor units forms a shape layer of the image with a group of editable shapes. The group of editable shapes has a group of shape positions in the shape layer that corresponds to a group of positions of a group of shapes in the image. According to other exemplary embodiments, a computer system and a computer program product for manipulating text and a group of shapes are provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 is a block diagram of a computing environment in which an exemplary embodiment may be implemented;
[0007] Figure 2 is a pictorial representation of a network of data processing systems in which an exemplary embodiment may be implemented;
[0008] Figure 3 is a block diagram of an image manipulation environment according to an exemplary embodiment;
[0009] Figure 4is a block diagram of a data flow for generating a new image from an image comprising pixels according to an exemplary embodiment;
[0010] Figure 5 is an illustration of image and text layers according to an exemplary embodiment;
[0011] Figure 6 is an illustration of an image and shape layer according to an exemplary embodiment;
[0012] Figure 7 is an illustration of a new image including a combined layer according to an exemplary embodiment;
[0013] Figure 8 is a flow chart of a process for creating editable text with changeable text attributes according to an exemplary embodiment;
[0014] Fig. 9 is a flow chart of a process for manipulating editable text or editable shapes according to an exemplary embodiment;
[0015] Fig.10 is a flow chart of a process of combining a text layer and a shape layer into an editable image according to an exemplary embodiment;
[0016] Fig.11 is a flow chart of a process for determining the position of shapes and text according to an exemplary embodiment;
[0017] Fig.12 is a flow chart of a process for creating editable text according to an exemplary embodiment;
[0018] Fig.13 is a flow chart of a process for creating a set of editable shapes according to an exemplary embodiment; and
[0019] Fig.14 is a block diagram of a data processing system according to an exemplary embodiment. DETAILED DESCRIPTION
[0020] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic contained in computer program product (CPP) embodiments. For any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, also depending on the technology involved, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that overlaps at least partially in time.
[0021] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe one or more sets of storage media (also referred to as "media") that are collectively contained in one or more sets of 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 retain and store instructions for use by a computer processor. A 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: floppy disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanical encoding devices (such as punch cards or pits / land formations on a major surface of a disc), or any suitable combination of the foregoing. Computer-readable storage media (as that term is used in this disclosure) should not be construed as storing in the form of transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through fiber optic cables, electrical signals transmitted through wires, and / or other transmission media. Those skilled in the art will understand that data is typically moved at certain occasional points in time during normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device temporary because data is not temporary when stored.
[0022] The computing environment 100 includes an example of an environment for executing at least some of the computer codes involved in executing the methods of the present invention, such as an image manager code 190. In an illustrative example, the image manager code 190 can be used for an image to increase the editability of the image. The image manager code 190 can be used to convert an image containing pixels into a form that is easier for a user to edit. In addition to the image manager code 190, the computing environment 100 also includes, for example, a computer 101, a wide area network (WAN) 102, an end user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 includes a processor group 110 (including a processing circuit 120 and a cache 121), a communication structure 111, a volatile memory 112, a persistent storage device 113 (including an operating system 122 and an image manager code 190, as described above), a peripheral device group 114 (including a user interface (UI) device group 123, a storage device 124, and an Internet of Things (IoT) sensor group 125) and a network module 115. The remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140, a cloud orchestration module 141, a host physical machine group 142, a virtual machine group 143, and a container group 144.
[0023] 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 developed in the future that is capable of running programs, accessing a network, or querying a database, such as remote database 130. As is well known in the art of computer technology, and depending on the technology, the execution of a computer-implemented method may be distributed among multiple computers and / or among multiple locations. On the other hand, in this demonstration of computing environment 100, the detailed discussion focuses on a single computer, specifically computer 101, to keep the demonstration as simple as possible. Computer 101 may be located in the cloud, even if it is not hosted on a server. Figure 1 On the other hand, unless explicitly stated, computer 101 need not be located in the cloud.
[0024] Processor group 110 includes one or more computer processors of any type now known or developed in the future. Processing circuit 120 can be distributed over multiple packages, such as multiple coordinated integrated circuit chips. Processing circuit 120 can implement multiple processor threads and / or multiple processor cores. Cache 121 is a memory located in the processor chip package, typically used for data or code that should be quickly accessed by threads or cores running on processor group 110. Cache memory is typically organized into multiple levels based on relative proximity to the processing circuit. Alternatively, part or all of the processor group's cache can be located "off chip". In some computing environments, processor group 110 can be designed to process quantum bits and perform quantum computing.
[0025] Computer readable program instructions are typically loaded onto the computer 101 to cause the processor group 110 of the computer 101 to perform a series of operating steps to implement a computer-implemented method, such that the instructions executed will instantiate the method specified in the flowcharts and / or narrative descriptions of the computer-implemented method contained in this document (collectively referred to as the "method 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 processor group 110 accesses the program instructions and related data to control and direct the execution of the method of the present invention. In the computing environment 100, at least some of the instructions for performing the method of the present invention can be stored in the image manager code 190 in the persistent storage device 113.
[0026] The communication fabric 111 is a signaling path that allows the various components of the computer 101 to communicate with each other. Typically, the fabric is composed of switches and conductive paths, such as those that form a bus, a bridge, physical input / output ports, etc. Other types of signal communication paths may be used, such as fiber optic communication paths and / or wireless communication paths.
[0027] The volatile memory 112 is any type of volatile memory currently known or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, the volatile memory 112 is characterized by random access, but this is not required unless explicitly stated. In the computer 101, the volatile memory 112 is located in a single package and is internal to the computer 101, but, as an alternative or in addition, the volatile memory can be distributed over multiple packages and / or located external to the computer 101.
[0028] The persistent storage device 113 is a non-volatile storage device of any form of computer currently known or developed in the future. The non-volatility of such storage means that the stored data will be maintained regardless of whether the computer 101 is powered on and / or power is directly supplied to the persistent storage device 113. The persistent storage device 113 can be a read-only memory (ROM), but typically at least a portion of the persistent storage device allows data to be written, deleted, and rewritten. Some common forms of persistent storage devices include magnetic disks and solid-state storage devices. The operating system 122 can take a variety of forms, such as various known proprietary operating systems or operating systems of the open source portable operating system interface type that use a kernel. The code contained in the image manager code 190 typically includes at least some of the computer code involved in executing the method of the present invention.
[0029] The peripheral device group 114 includes a peripheral device group of the computer 101. The data communication connection between the peripheral device and other components of the computer 101 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection established by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (such as a secure digital (SD) card), a connection established by a local area network, and even a connection established by a wide area network such as the Internet. In various embodiments, the UI device group 123 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. The storage device 124 is an external storage device, such as an external hard drive, or a pluggable storage device, such as an SD card. The storage device 124 can be persistent and / or volatile. In some embodiments, the storage device 124 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where it is necessary for computer 101 to have a large amount of storage space (e.g., computer 101 locally stores and manages a large database), this storage space can be provided by a peripheral storage device designed to store large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor group 125 consists of sensors that can be used in IoT applications. For example, one sensor can be a thermometer and another sensor can be a motion detector.
[0030] The network module 115 is a collection of computer software, hardware, and firmware that allows the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware, such as a modem or Wi-Fi signal transceiver, software for grouping and / or unpacking data for communication network transmission, and / or Web browser software for communicating data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 115 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and the forwarding function of the network module 115 are executed on physically separate devices, so that the control function manages several different network hardware devices. Computer-readable program instructions for executing the method of the present invention can typically be downloaded to the computer 101 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 115.
[0031] WAN 102 is any wide area network (e.g., the Internet) capable of communicating computer data over non-local distances by any technology for communicating computer data, currently known or developed in the future. 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 computer hardware, such as copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.
[0032] End-user device (EUD) 103 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 101), and may take any of the forms described above in relation to computer 101. EUD 103 typically receives helpful and useful data from the operation of computer 101. For example, assuming that computer 101 is designed to provide advice to an end-user, the advice would typically be communicated from network module 115 of computer 101 to EUD 103 via WAN 102. In this way, EUD 103 may display or otherwise present the advice 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, etc.
[0033] Remote server 104 is any computer system that provides 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 helpful and useful data for use by other computers, such as computer 101. For example, assuming that computer 101 is designed and programmed to provide recommendations based on historical data, the historical data may be provided to computer 101 from remote database 130 of remote server 104.
[0034] The public cloud 105 is any computer system available to multiple entities that provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing power, without direct active management by users. Cloud computing typically utilizes resource sharing to achieve consistency and economies of scale. The direct and active management of the computing resources of the public cloud 105 is performed by computer hardware and / or software of the cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically implemented by a virtual computing environment that runs on various computers that constitute the host physical machine group 142, which is the physical computer world in and / or available to the public cloud 105. The virtual computing environment (VCE) is typically in the form of a virtual machine from the virtual machine group 143 and / or a container from the container group 144. It will be appreciated that these VCEs can be stored as images and can be transferred between various physical machine hosts, either as images or after the VCE is instantiated. Cloud orchestration module 141 manages the transfer and storage of images, deploys new instances of VCE, and manages active instances of VCE deployments. Gateway 140 is a collection of computer software, hardware, and firmware that allows public cloud 105 to communicate over WAN 102 .
[0035] The Virtualized Computing Environment (VCE) will now be explained further. A VCE can be stored as an "image". A new active instance of a VCE can be instantiated from an image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of the programs running in them, these isolated user space instances generally behave like real computers. Computer programs running on a normal operating system can utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running within a container can only use the contents of the container and the devices assigned to the container, a feature called containerization.
[0036] Private cloud 106 is similar to public cloud 105, except that the computing resources are only available to a single enterprise. Although private cloud 106 is depicted as communicating with WAN 102, in other embodiments, the private cloud may be completely disconnected from the Internet and only accessible through a local / private network. A hybrid cloud is a combination of multiple different types of clouds (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains an independent and discrete entity, but the larger hybrid cloud architecture is tied together through standardized or proprietary technologies to enable orchestration, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, both public cloud 105 and private cloud 106 are part of a larger hybrid cloud.
[0037] The exemplary embodiments recognize and take into account many different considerations described herein. For example, the exemplary embodiments recognize and take into account that using digital images may present challenges. These challenges may arise from the fact that digital images are in pixel form, which reduces the ability to edit or modify the digital images. These challenges may be related to changing technical documents (e.g., software documents). For example, text and shapes cannot be easily reused or translated. For example, a screenshot of a frame or menu layout cannot be easily edited. Instead, a new screenshot is captured to replace the previous screenshot.
[0038] As another example, optical character recognition can be performed on these images. However, optical character recognition cannot easily place text in the correct location in the image to recreate meaningful graphical content, such as explanation instructions for a user interface in software.
[0039] Additionally, older images may not be of the quality needed for reuse. The resolution of older images may cause them to be blurry or unclear. For example, the resolution of older digital images may be so low that the text is unreadable. Additionally, digital images may still contain typographical errors, misspelled words, originals, incorrect meanings, or incorrect labels. Text in photos, bitmap files, JPEG files, or PNG files cannot be easily edited in these types of files.
[0040] When using these types of files in documents or other types of content, editing the text in these digital images can require a lot of effort, including patchwork work with backgrounds, colors, and font management. The effort required can be time-consuming and require an experienced user to perform the editing modifications. Likewise, the shapes in these types of files are not easily modified or altered. Therefore, using these types of files in documents or other content can make modifying or updating the information in the document or other content more difficult and time-consuming than expected.
[0041] When editing or managing software documents, using optical character recognition does not provide quick fixes or editing capabilities in graphics tools or editors. The original visual appearance of text and other graphics (such as shapes) cannot be maintained with the required accuracy.
[0042] Therefore, recognizing these and other considerations, the exemplary 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 containing pixels may also be referred to as digital images, rasterized images, or bitmap images.
[0043] In an illustrative example, an image can be converted into a layer for manipulating components such as text and shapes. In an illustrative example, editable text is created from text in an image composed of pixels. The editable text created from the image has changeable text properties. A text layer is formed for an image with editable text. The editable text is located in a text position in the text layer corresponding to the position of the text in the image. A group of editable shapes corresponding to a group of shapes in the image is created. The group of editable shapes has changeable shape properties. A shape layer is formed for an image with the group of editable shapes. The group of editable shapes has a group of shape positions in the shape layer, which corresponds to a group of positions of the group of shapes in the image, wherein the text layer and the shape layer are displayed in a graphical user interface of a display system. In this illustrative example, the text layer and the shape layer can be displayed so that the two layers have the same appearance or visual appearance as the image. The editing of these layers is easier than the pixels in the image.
[0044] As used herein, "plurality" when used to refer to an item means one or more items. For example, "plurality of different types of networks" means one or more different types of networks.
[0045] Additionally, the phrase "at least one of" when used with a list of items means that different combinations of one or more of the listed items can be used, and that only one of each item in the list may be required. In other words, "at least one of" means that any combination of items and multiple items in the list can be used, but not all items in the list are required. Items can be specific objects, things, or categories.
[0046] For example, but not limited to, "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, these items may exist in any combination. In some illustrative examples, "at least one" may be, for example, but not limited to, two items A; one item B; and ten items C; four items B and seven items C; or other suitable combinations.
[0047] Reference now Figure 2 , which depicts a pictorial representation of a network of data processing systems in which the illustrative embodiments may be implemented. Network data processing system 200 is a network of computers in which the illustrative embodiments may be implemented. Network data processing system 200 contains 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 wired, wireless communications links, or fiber optic cables.
[0048] In the depicted 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.
[0049] In the illustrated example, server computer 204 provides information, such as boot files, operating system images, and applications, to client device 210. In this illustrative example, server computer 204, server computer 206, storage unit 208, and client device 210 are network devices connected to network 202, and network 202 is a communication medium for these network devices. Some or all of client devices 210 may form an Internet of Things (IoT), and these devices may be connected to network 202 and exchange information with each other through network 202.
[0050] In this example, client device 210 is a client to server computer 204. Network data processing system 200 may include other server computers, client computers, and other devices not shown. Multiple client devices 210 connect to network 202 using at least one of a wired, fiber optic, or wireless connection.
[0051] Program instructions located in network data processing system 200 may be stored on a computer recordable storage medium and downloaded to the data processing system or other devices for use. For example, program instructions may be stored on a computer recordable storage medium on server computer 204 and downloaded to client device 210 via network 202 for use by client device 210.
[0052] In the depicted example, network data processing system 200 is the Internet, and network 202 represents a global collection of networks and gateways that communicate with each other using the Transmission Control Protocol / Internet Protocol (TCP / IP) protocol suite. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, which consist of thousands of commercial, government, educational, and other computer systems for routing data and messages. Of course, network data processing system 200 may also be implemented using a variety of different types of networks. For example, network 202 may consist 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 This is merely an example and not an architectural limitation on the different exemplary embodiments.
[0053] As shown, a user 230 on a client computer 212 uses a browser 234 running on the client computer 212 to manipulate an image 232. In this example, the image 232 is for a software document. For example, the image 232 may be a screen shot with text describing shapes such as controls or menus in the screen shot. The user 230 may edit, update, or change 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 on the text and shapes.
[0054] In this example, the text and shapes in image 232 are defined by pixels. Image 232 is not easily editable by user 230 in its current form because the text is defined using pixels. User 230 can send image 232 to image manager 236 located in server computer 204. Image manager 236 can process image 232 and generate new image 238 in a format that is easier to edit than image 232 and has the same visual appearance as image 232.
[0055] In this example, image manager 236 performs optical character recognition on image 232 to identify text within image 232. In this example, optical character recognition results in the generation of text data. The text data is machine readable and may be, for example, ASCII code rather than the pixels used in image 232.
[0056] Additionally, image manager 236 determines the location of the recognized text in image 232. Image manager 236 identifies text attributes of the recognized text in image 232. These text attributes may be, for example, font name, color, style, and other properties of the text.
[0057] In this example, image manager 236 creates a first layer that contains text from image 232. Furthermore, based on the location of the text in image 232, the text in the first layer is located at a position that corresponds to the location of the text in image 232. Text attributes are associated with the text in the first layer.
[0058] Thus, the first layer may be displayed such that the text has the same visual appearance as the text in image 232. The difference is that the text in the first layer is more easily editable than the pixels defining the text in image 232.
[0059] In addition, the image manager 236 detects shapes in the image 232 and generates shapes that are easier to edit from the shapes detected in the image 232. These shapes are defined using shape data (e.g., vector graphics) rather than using pixels in the image 232.
[0060] Image manager 236 determines the location of the shape in image 232. Image manager 236 also identifies shape attributes of the shape in image 232. These shape attributes may be, for example, line width, line type, line color, fill color, and other attributes of the shape.
[0061] Image manager 236 creates a second layer containing the shapes. The positions of the shapes in the second layer correspond to the positions of the shapes in image 232. In addition, shape attributes of the shapes are associated with the shapes in the second layer.
[0062] The second layer can be displayed as shapes having the same visual appearance as the shapes in image 232. The shapes in the second layer are in a machine-readable format and are easier to edit than the pixels defining the shapes in image 232.
[0063] In this example, image manager 236 combines the first layer containing text and the second layer containing shapes to form new image 238. New image 238 is a more easily editable form of image 232. New image 238 has the visual appearance of image 232 when displayed.
[0064] Therefore, the text and shapes in new image 238 are easier to manipulate than the 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 easier to edit than text defined using pixels.
[0065] In other words, new image 238 is a version of image 232 in a format that is more suitable for editing by user 230 than editing pixels. In addition, new image 238 can be reused for future editing.
[0066] As another illustrative example, user 240 on tablet computer 220 may use a program such as graphic editor 244 to manipulate image 242. In this example, image manager 246 is located in tablet computer 220 and is depicted as a separate component from graphic editor 244. In other illustrative examples, image manager 246 may be part of graphic editor 244.
[0067] Image manager 246 may be used to convert image 242 having a pixel format into a new image 250 having a format that is more easily editable by user 240 using graphic editor 244. In this illustrated example, image manager 246 identifies text and shapes from pixels in image 242. In addition, image manager 246 determines the location of text and shapes in image 242. Image manager also identifies text attributes for text and shape attributes for shapes in image 242.
[0068] Image manager 246 creates a first layer for text and a second layer for shapes based on image 242. In this illustrative example, the positioning of the text in the first layer corresponds to the positioning of the text in image 242. The positioning of the shapes in the second layer corresponds to the positioning of the shapes in image 242. In addition, text attributes are associated with the text in the first layer, and shape attributes are associated with the shapes in the second layer, so that the display of these layers provides the same visual appearance for these elements as in image 242.
[0069] In this illustrative example, user 240 may independently edit the text in the first layer and the shapes in the second layer in new image 250. In other illustrative examples, the two layers may be combined into one layer in new image 250. User 240 may edit new image 250 using graphic editor 244. In addition, new image 250 may be reused for improvisation, correction, or translation of content found in image 242.
[0070] Thus, the use of layers of text and shapes in this example can facilitate image manipulation, such as correcting or modifying a digital image (e.g., a bitmap image). Using the layers created in this example, images can be more easily manipulated for use in technical graphics, infographics, software screenshots, image data tables, flow charts, and other types of purposes. In various illustrative examples, the use of layers can be implemented in a graphics tool. Such functionality can improve at least one of readability or visibility of elements in a digital image by converting elements such as text and shapes in the digital image into a form that is easier to edit.
[0071] Reference now Figure 3 , a block diagram of an image manipulation environment is described according to an exemplary embodiment. In this illustrative example, the image environment 300 includes components that can be implemented in hardware, such as Figure 2 The hardware shown in the network data processing system 200.
[0072] In this illustrative example, image management system 302 may be used to manage images in image environment 300. Images may take a variety of different forms. For example, images may be selected from at least one of the following: screenshots, scanned images, photographs, web page banners, geographic maps, bitmaps, and other graphical depictions.
[0073] As shown, the image management system 302 includes a computer system 304 and an image manager 306. The image manager 306 is located in the computer system 304 and can be implemented in software, hardware, firmware, or a combination thereof. Figure 1 An example of image manager code 190 in . When software is used, the operations performed by image manager 306 may be implemented in program instructions configured to run on hardware (eg, a processor unit).
[0074] When firmware is used, the operations performed by the image manager 306 may be implemented in program instructions and data and stored in persistent memory to run on a processor unit. When hardware is used, the hardware may include circuitry for performing the operations in the image manager 306.
[0075] In an illustrative example, the hardware can take the form of at least one selected from the following: a circuit system, an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware configured to perform multiple operations. Using a programmable logic device, the device can be configured to perform multiple operations. The device can be reconfigured later, or the device 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. In addition, these processes can be implemented in organic components integrated with inorganic components, and can be composed entirely of organic components other than humans. For example, these processes can be implemented as circuits in organic semiconductors.
[0076] Computer system 304 is a physical hardware system that includes one or more data processing systems. When there are multiple data processing systems in computer system 304, these data processing systems communicate with each other using a communication medium. The communication medium may be a network. The data processing system may be selected from at least one of a computer, a server computer, a tablet computer, or some other suitable data processing system.
[0077] As shown, computer system 304 includes a group of processor units 308 that are capable of executing program instructions 310 to implement the process in the illustrative example. As used herein, "group" when used to refer to an item means one or more items. For example, a group of processing units 308 is one or more processor units 308. The processor units in a group of processor units 308 are hardware devices, composed of hardware circuits (e.g., hardware circuits on integrated circuits) that respond to and process instructions and program instructions to operate the computer.
[0078] When a set of processor units 308 executes program instructions 310 for a process, a set of processor units 308 is one or more processor units that can be located on the same computer or on different computers. In other words, the process can be distributed among processor units on the same or different computers in computer system 304. In addition, a set of processor units 308 can be processor units of the same type or different types. For example, a set of processor units 308 can be selected from at least one of a single-core processor, a dual-core processor, multiple processor cores, a general-purpose central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), or some other type of processor unit.
[0079] In this illustrated example, image management system 302 can process image 312 to make image 312 easier to edit. As shown, image 312 is composed of pixels 314. Text 316 and a set of shapes 318 are present in image 312. As shown, text 316 and a set of shapes 318 are defined in image 312 using pixels 314. Image 312 may also be referred to as a pixel image, a digital image, or a rasterized image.
[0080] The image manager 306 may create editable text 320 from the text 316 in the image 312. The image manager 306 may analyze the pixels 314 to identify the text 316 in the image 312. For example, the image manager 306 may use an optical character recognition process to identify the text 316 from the pixels 314 that define the text 316 in the image 312. The editable text 320 may be, for example, characters 321 described using a character encoding format (e.g., ASCII) or other formats or mechanisms other than pixels 314.
[0081] In addition, the image manager 306 can identify changeable text attributes 322 from the text 316 in the image 312 and associate the changeable text attributes 322 with the editable text 320. The changeable text attributes 322 can take a variety of different forms. For example, the changeable text attributes 322 can be selected from at least one of a font name, style, size, color, bold, italic, underline, or other attributes of the editable text 320.
[0082] These changeable text attributes 322 can be modified to change the appearance of the editable text 320. In this illustrated example, the changeable text attributes 322 can be used to change the appearance of individual characters or groups of text (eg, words or phrases) in the editable text 320.
[0083] In addition, the characters 321 can be changed within the editable text 320. In other words, the characters in the characters 321 can be changed from one character to another. For example, in the text "halp", "a" can be changed to "e" to obtain the text "help".
[0084] In this illustrative example, text location 324 is also identified for editable text 320. For example, image manager 306 creates text layer 326 with editable text 320 from text 316 in image 312. In this illustrative example, text layer 326 may have the same dimensions as image 312. Editable text 320 is located in text location 324 in text layer 326, which corresponds to the location of text 316 in image 312.
[0085] For example, text position 324 of 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 corresponding to the position of text 316 in pixels 314. The coordinates describing text position 324 in text layer 326 may be based on the position of text 316 in rows and columns of pixels 314, such that text layer 326 may display editable text 320 having the same visual appearance as text 316 in image 312.
[0086] In this illustrative example, image manager 306 may create a set of editable shapes 330 that corresponds to a set of shapes 318 in image 312. In this illustrative example, image manager 306 may use an object recognition process to analyze pixels 314 to identify shapes 318. By identifying shapes 318, set of shapes 318 may be used to create editable shapes 330. Set of editable shapes 330 may be described using vector graphics data. For example, editable shapes 330 may be defined in a Cartesian plane using objects such as points, lines, curves, and polygons.
[0087] In addition, the image manager 306 can identify changeable shape attributes 332 from the shapes 318 in the image 312 and associate the changeable shape attributes 332 with the group of editable shapes 330. The changeable shape attributes 332 can take a variety of different forms. For example, the changeable shape attributes 332 can be selected from at least one of the line width, line type, line color, transparency level, fill color, fill pattern, alignment, or other attributes of the group of editable shapes 330. These attributes can be changed to change the appearance of the group of editable shapes 330. These attributes can be changed for each shape in the group of editable shapes 330. In addition, the actual shape of the editable shapes in the editable shapes 330 can also be changed. For example, the length of the rectangle can be lengthened. For another example, a triangle can be deformed into a pentagon, an octagon, or other shapes.
[0088] In this illustrative example, shape positions 334 are also identified for set of editable shapes 330. Image manager 306 creates shape layer 336 using set of editable shapes 330 created from set of shapes 318 in image 312. In this illustrative example, shape layer 336 has the same dimensions as image 312. Set of editable shapes 330 are located in set of shape positions 334 in shape layer 336 that correspond to the positions of set of shapes 318 in image 312.
[0089] For example, a set of shape positions 334 of the set of editable shapes 330 may be set to positions corresponding to the positions of the set of shapes 318. In this example, the shape layer 326 has the same size as the image 312. The shape positions 334 may have coordinates corresponding to the positions of the shapes 318 in the pixels 314. For example, the coordinates describing the set of shape positions 334 in the text layer 326 may be based on the positions of the set of shapes 318 in the rows and columns of the pixels 314, so that the shape layer 336 may be displayed as a set of editable shapes 330 having the same visual appearance as the set of shapes 318 in the image 312.
[0090] When creating text layer 326 and shape layer 336 to have the same visual appearance as image 312, current text attributes 340 of text 316 may be identified based on analysis of pixels 314 defining text 316. Additionally, current shape attributes 342 of a set of shapes 318 may be identified by analyzing pixels 314 defining shapes 318. Pixel analysis for identifying these current attributes may include analyzing pixel intensity, pixel color, and other attributes of the pixels forming the pixels defining text 316 and shapes 318.
[0091] Changeable text attributes 322 may be set as current text attributes 340, and changeable shape attributes 332 may be set as current shape attributes 342. Using these current attributes, editable text 320 in text layer 326 and set of editable shapes 330 in shape layer 336 may have the same visual appearance as text 316 and shapes 318 in image 312 when these layers are displayed, in addition to set of shape positions 334 and text positions 324. In other words, changeable text attributes 322 have initial values that cause editable text 320 to have the visual appearance of text 316 in image 312, and changeable shape attributes 332 have initial values that cause set of editable shapes 330 to have the visual appearance of set of shapes 318 in image 312.
[0092] In this illustrative example, text layer 326 and shape layer 336 may be displayed to user 352 on human-machine interface 350. As shown, human-machine interface 350 includes display system 354 and input system 356.
[0093] Display system 354 is a physical hardware system that includes one or more display devices on which graphical user interface 358 can be displayed. The display device 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 that can output information for visual presentation of the information.
[0094] As shown, text layer 326 and shape layer 336 may be displayed to user 352 in graphical user interface 358 on display system 354. User 352 is a person who may interact with graphical user interface 358 via user input generated by input system 356. Input system 356 is a physical hardware system that may be selected from at least one of a mouse, a keyboard, a touchpad, a trackball, a touch screen, a stylus, a motion sensing input device, a gesture detection device, a data glove, a cyber glove, a tactile feedback device, or some other suitable type of input device.
[0095] In this manner, user 352 may edit editable text 320 in text layer 326 and a set of editable shapes 330 in shape layer 336 more easily than editing text 316 and shapes 318 defined by pixels 314 in image 312. In this illustrative example, in graphical user interface 358, text layer 326 may be overlaid on shape layer 336, or shape layer 336 may be overlaid on text layer 326 to provide the visual appearance of image 312.
[0096] By displaying these layers in graphical user interface 358, user 352 can select one of these layers to edit elements in the layer. For example, user 352 can select text layer 326 and edit editable text 320. In another illustrative example, user 352 can select shape layer 336 and edit a set of editable shapes 330.
[0097] Such editing of editable text 320 may include changing characters 321 in editable text 320 to correct spelling errors, updating editable text 320, adding new content, translating editable text 320 into another language, or performing other changes. In addition, editing may include changing changeable text attributes 322 of editable text 320, such as font size, color, or other changeable text attributes 322.
[0098] Edits performed by user 352 may also include changing editable shape 330. For example, shapes may be added to editable shape 330, shapes may be deleted from editable shape 330, editable shape 330 may be modified, or some combination of the above. Additionally, the appearance of editable shape 330 may be changed by changing changeable shape attributes 332. For example, line thickness may be increased, color may be changed, or other changeable shape attributes may be changed.
[0099] In this illustrative example, the two layers may form editable image 360. Editable image 360 is a new image that may be displayed in graphical user interface 358 in display system 354. Additionally, in this example, the two layers may be separated from one another. The two layers may be displayed overlapping one another, one at a time, or in other ways.
[0100] In another illustrative example, image manager 306 may combine text layer 326 and shape layer 336 to form editable image 360. In this example, only a single layer exists after combining the two layers.
[0101] Thus, image manager 306 can create editable text 320 and editable shape 330 to replace those elements in text layer 326 and shape layer 336 in corresponding positions in those layers, resulting in editable image 360 having the same visual appearance as image 312. Furthermore, identification of changeable text attributes 322 of editable text 320 and changeable shape attributes 332 of editable shape 330 is used to achieve the same visual appearance between editable image 360 and image 312. Additionally, image manager 306 creates editable text 320 with changeable text attributes 322 in a form that is easier to manipulate than the same text in text 316 defined by pixels 314 in image 312. Image manager 306 creates editable shape 330 in a form that is easier to manipulate than corresponding shapes and shapes 318 defined by pixels 314 in image 312.
[0102] Computer system 304 may be configured to perform at least one step, operation, or action described in the different illustrative examples using software, hardware, firmware, or a combination thereof. Thus, computer system 304 operates using image manager 306, which can manipulate text and shapes with less effort than manipulating text and shapes in an image composed of pixels.
[0103] In the illustrative example, the use of image manager 306 in computer system 304 integrates the process into a practical application to enable users to manipulate images. In this illustrative example, image manager 306 is a tool that can convert images from pixel form to another form for easy editing.
[0104] For example, text and shapes defined by pixels in an image can be converted to computer-readable text and shapes. Computer-readable text can be, for example, text represented in ASCII code. This representation of text can make it easier to edit the text using a graphics tool or application than editing the same text represented in pixels. For another example, shapes can be represented using vector graphics data rather than in pixel form.
[0105] Figure 3 The description of image environment 300 in the figure is not intended to be a physical or architectural limitation on the implementation of the exemplary embodiment. Other components other than the components shown or other components that replace these components can be used. Some components may be unnecessary. In addition, these blocks are used to illustrate certain functional components. When implemented in the exemplary embodiment, one or more of these blocks can be combined, divided, or combined and divided into different blocks.
[0106] For example, in addition to text layer 326 and shape layer 336, one or more layers may be present. For example, there may be additional shape layers, and the editable shapes placed in the two shape layers may be based on various criteria, such as shape type, shape position, shape color, or other criteria. As another example, there may be another text layer. For two text layers, different criteria may be used to place editable text in the layers. For example, editable text located within a shape may be placed in one text layer, while editable text located outside of the shape may be placed in another text layer.
[0107] Next reference Figure 4 , a block diagram of a data flow for generating a new image from an image containing pixels is shown, according to an exemplary embodiment. As shown, an application 402 receives an image 400 for manipulation.
[0108] Application 402 includes components that can put image 400 into a form that is easier to edit or manipulate. In this illustrative example, image manager 306 can be implemented in application 402 to convert image 400 into a form that is easier to edit. Application 402 can take a variety of different forms. For example, application 402 can be a graphics tool, a graphic art program, a web design application, a presentation program, a word processing application, a computer-aided design application, or some other suitable type of application.
[0109] Image 400 is a pixel-based image, including pixels 403. For example, image 400 may be a bitmap, a photograph, a scanned document, or other type of image composed of pixels.
[0110] In this illustrative example, application 402 has a number of 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.
[0111] Localization 404 in application 402 identifies text locations of text 412 in image 400 (block 416). Localization 404 also identifies shape locations of shapes 414 in image 400 (block 418). These locations can be described using pixel coordinates of image 400. For example, pixel coordinates of the center of each object, such as a character in text 412, for a shape in shapes 414 can be obtained.
[0112] In this illustrative example, extraction 406 extracts text 412 (block 420). In block 420, extracting text 412 from image 400 produces text data that does not use pixels to describe text 412. For example, extracting text 412 produces text data in the form of ASCII codes that identify characters in text 412 in a machine-readable form. In addition, extracting text 412 also results in identifying text attributes of text 412. Therefore, text 412 is editable text.
[0113] Extraction 406 also extracts shape 414 (block 422). In block 422, extraction of shape 414 results in the generation of shape data in a machine-readable form. The shape data may be, for example, vector graphics data. Shape 414 may be described using vector graphics data (e.g., points, lines, curves, or other graphical elements). In addition, the extraction also results in the identification of shape attributes of shape 414. Therefore, shape 414 is an editable shape.
[0114] In this illustrative example, layer creation 408 creates layer 1 (block 424). In this illustrative example, layer 1 includes text 412 at a location corresponding to the location of text 412 in image 400. In addition, layer creation 408 associates text attributes with text 412. Thus, display of layer 1 results in display of text 412, and the visual appearance of text 412 matches the visual appearance of text 412 in image 400.
[0115] 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. In addition, layer creation 408 associates shape attributes with shape 414. Thus, display of layer 2 results in the visual appearance of shape 414 matching shape 414 in image 400. Thus, layers 1 and 2 may be displayed to have a similar visual appearance as image 400.
[0116] In this illustrative example, manipulation 410 may display layer 1, layer 2, or both layers in the graphical user interface in response to user input requesting to edit, correct, or otherwise manipulate one or more of the layers.
[0117] Manipulation 410 may display at least one of layer 1 or layer 2 in a graphical user interface. Manipulation 410 may receive user input manipulating text 412 in layer 1 (block 428). Manipulation 410 may also receive user input manipulating shape 414 in layer 2 (block 430).
[0118] The manipulation performed in block 428 may include changing text attributes of text 412. For example, the font name, style, size, color, bold, italic, underline, or other text attributes may be changed. In addition, manipulation of characters in text 412 may also be performed. For example, the manipulation performed by manipulation 410 may include copying, pasting, deleting, or other manipulation of characters.
[0119] The manipulation performed in block 430 may include changing shape properties of shape 414. For example, the line width, line type, line color, transparency level, fill color, fill pattern, alignment, or other shape properties may be changed. As another example, the manipulation of shape 414 may also include inserting a new shape, deleting a shape, modifying a shape, moving a shape, or other types of manipulation.
[0120] After manipulation 410 in application 402 performs one or more manipulations, 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 by combining layer 1 and layer 2. In other illustrative examples, each layer can be maintained separately in new image 432.
[0121] New image 432 may be manipulated in the future without reprocessing image 400. In these illustrative examples, the manipulations formed by application 402 using manipulations 410 require less effort from the user than image 400 including pixels 403.
[0122] The description of the different operations in the different blocks performed by the process in application 402 has been described in a particular order. For example, the processing of text 412 is described before processing shape 414. In other illustrative examples, shape 414 may be processed before processing text 412. As another example, text 412 and shape 414 may be extracted before the locations of text 412 and shape 414 are identified.
[0123] Next reference Figure 5-7 , according to an exemplary embodiment, a diagram of images and layers is described. These images and layers can be represented by Figure 3 An example of an image processed by the image manager 306 in Figure 3 The image manager 306 in creates and displays the Figure 3 An example of layers displayed on graphical user interface 358 in display system 354 in .
[0124] refer to Figure 5 , depicts an illustration of image and text layers according to an exemplary embodiment. In this illustrative example, image 500 is Figure 3312 in FIG. 5 . In this illustrative example, image 500 is a digital image comprising pixels. Text and shapes can be seen in image 500.
[0125] In this figure, text layer 502 is created by processing image 500. In this example, text layer 502 has the same size as image 500. In this way, the location of text in image 500 can be associated with the location of corresponding text in text layer 502.
[0126] As shown, optical character recognition is used to extract text from image 500. Based on analyzing pixels of text in image 500, changeable text attributes are generated. For example, the changeable text attributes can be determined based on the pixel color and intensity of the pixels defining the text in image 500. In addition, the location of the text in image 500 is identified. The changeable text attributes in this example can be font name, style, size, and color.
[0127] This information is used to create text layer 502. As shown, the text in text layer 502 has the visual appearance of the text in image 500. For example, text 510 at location 512 in image 500 is "Compression Options". In this illustrative example, location 512 may be the pixel coordinates of the characters of text 510. In another illustrative example, the center of each character in text 510 may be used to identify the location of the character in text 510.
[0128] Text 514 is an editable version of text 510, has changeable text properties, and is located at position 516 in text layer 502. Position 512 in image 500 and position 516 in text layer 502 correspond to each other. Since text layer 502 has the same dimensions as image 500, a similar coordinate system can be used to position text 514.
[0129] Thus, the positioning of text 514 in text layer 502 provides the same visual appearance as text 510 in location 512 in image 500. The same visual appearance may also be provided by using the same text attributes so that the characters in text 514 have the visual appearance of the characters in text 510 except using corresponding positions.
[0130] Now go to Figure 6 , depicts an illustration of an image and a shape layer according to an exemplary embodiment. As shown, shape layer 600 is shown relative to image 500. In this example, shape layer 600 has the same size as image 500. In this manner, the location of a shape identified in image 500 can be associated with a location in shape layer 600.
[0131] In this illustrative example, shapes have been extracted from image 500 and used to create shape layer 600. The shapes are defined using shape data (e.g., vector graphics data). The positions of the shapes in image 500 can be used to locate corresponding editable shapes in shape layer 600. In addition, changeable shape attributes are identified and used to display the shapes in shape layer 600. In this illustrated example, the changeable shape attributes can include line color, line width, and line style.
[0132] For example, rounded rectangle 602 is one of the shapes identified in image 500 by analyzing pixels in image 500 and has position 604 in image 500. Using the determination of position 604 of rounded rectangle 602 in image 500, rounded rectangle 610 is located at position 612 in shape layer 600.
[0133] The position of rounded rectangle 610 can be determined in a variety of different ways. For example, the position can be based on the pixel coordinates of the outline of rounded rectangle 610. In another illustrative example, the position can be determined from the position of the center of rounded rectangle 610.
[0134] In the illustrative example, the position information is used to provide rounded rectangle 610 in shape layer 600 with the same visual appearance as rounded rectangle 602 in image 500. Position 612 of rounded rectangle 610 in shape layer 600 corresponds to position 604 of rounded rectangle 602 in image 500. The same visual appearance of rounded rectangle 610 also includes using the same shape attributes so that rounded rectangle 610 has the same visual appearance as rounded rectangle 602 in addition to having the corresponding positions.
[0135] exist Figure 7 , an illustration of a new image including combined layers is depicted according to an exemplary embodiment. In this illustrative example, text layer 502 and shape layer 600 have been combined to form combined layer 700 of new image 702. As shown, the original appearance of image 500 is preserved in new image 702. In other words, new image 702 has the same visual appearance as image 500.
[0136] Next go to Figure 8 , a flowchart of a process for creating editable text with changeable text attributes is described, according to an exemplary embodiment. Figure 8 The process in the invention can be implemented in hardware, software or both. When implemented in software, the process can be in the form of program instructions that are executed by one or more processor units in one or more hardware devices in one or more computer systems. Figure 8 The process shown in Figure 3 The image management system 302 in FIG. 1 is implemented. For example, the process can be performed in Figure 3The image management system 302 in the image manager 306 in the computer system 304 is implemented.
[0137] The process first creates editable text from text in an image, wherein the editable text has changeable text attributes (step 800). The process forms a text layer for the image using the editable text created from the text in the image, wherein the editable text is located at a text position in the text layer corresponding to the position of the text in the image (step 802).
[0138] The process creates a set of editable shapes that correspond to the set of shapes in the image, wherein the set of editable shapes has shape attributes that can be changed (step 804). The process forms a shape layer for the image using the set of editable shapes, wherein the set of editable shapes has a set of shape positions in the shape layer that correspond to the 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.
[0139] refer to Fig. 9 , a flowchart of a process for manipulating editable text or editable shapes is described according to an exemplary embodiment. The steps in the figure are Figure 8 Examples of additional steps used in the operation of the procedure.
[0140] The process first displays 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 a set of editable shapes and or editable text (step 902). The process modifies at least one of a set of editable shapes and or editable text in response to receiving the user input (step 904). The process terminates thereafter.
[0141] refer to Fig.10 , a flowchart of a process of combining a text layer and a shape layer into an editable image is described according to an exemplary embodiment. The steps in the figure are Figure 8 Examples of additional operations used in the steps of the procedure.
[0142] The process combines the text layer and the shape layer into an editable image containing editable text and a set of editable shapes (step 1000). Thereafter, the process terminates.
[0143] Reference now Fig.11 , a flowchart of a process for determining the location of text and shapes is described according to an exemplary embodiment. The steps in the figure are Figure 8 Examples of additional steps used in the operation of the procedure.
[0144] The process first determines the text position of editable text based on the position of the text in the image (step 1100). The process determines a set of shape positions of a set of editable shapes based on a set of positions of a set of shapes in the image (step 1102).
[0145] Next go to Fig.12 , a flowchart of a process for creating editable text is described according to an exemplary embodiment. Fig.12 The process shown in Figure 8 An example of one implementation of operation 800 is provided.
[0146] The process first performs optical character recognition to identify editable text from pixels forming the text in the image (step 1200). The optical character recognition generates text data, such as ASCII codes that define the text identified in the image. The process uses the pixels forming the text in the image to identify a set of current text attributes for the editable text (step 1202). The process sets the changeable text attributes as the current text attributes (step 1204). The process then terminates.
[0147] Next go to Fig.13 , a flowchart of a process for creating a set of editable shapes is described according to an exemplary embodiment. Fig.13 The process shown in Figure 8 An example of one implementation of operation 804 in FIG.
[0148] The process first performs object recognition to identify a set of editable shapes from pixels that form a set of shapes in an image (step 1300). In step 1300, object recognition generates shape data, such as vector graphics data that defines the shapes in the image.
[0149] The process uses pixels forming a set of shapes in the image to identify a current set of shape attributes for a set of shapes in the image (step 1302). The process sets the changeable shape attributes as the current shape attributes (step 1304). Thereafter, the process terminates.
[0150] Flowcharts and block diagrams in different embodiments illustrate some possible architectures, functions and operations of the apparatus and methods in exemplary embodiments. In this regard, each frame in a flow chart or block diagram can represent at least one of a part of a module, segment, function or operation or step. For example, one or more frames can be implemented as a combination of program instructions, hardware, or program instructions and hardware. When implemented in hardware, the hardware can, for example, take the form of an integrated circuit, which is manufactured or configured to perform one or more operations in a flow chart or block diagram. When implemented in a combination of program instructions and hardware, implementation can take the form of firmware. Each frame in a flow chart or block diagram can be implemented using a dedicated hardware system, which performs different operations or a combination of dedicated hardware and the program instructions run by dedicated hardware.
[0151] In some alternative implementations of the exemplary embodiments, the functions indicated in the blocks may not occur in the order shown in the figure. For example, in some cases, two blocks shown in succession may be executed substantially simultaneously, or may sometimes be executed in reverse order, depending on the functions involved. In addition, other blocks may be added in addition to the blocks shown in the flowchart or block diagram.
[0152] Now go to Fig.14 , depicts a block diagram of a data processing system according to an exemplary embodiment. Data processing system 1400 may be used to implement Figure 2 1400. Data processing system 1400 may also be used to implement computer system 304. In this illustrative example, data processing system 1400 includes communications framework 1402, which provides communications between processor unit 1404, memory 1406, persistent storage 1408, communication unit 1410, input / output unit 1412, and display 1414. In this example, communications framework 1402 takes the form of a bus system.
[0153] Processor unit 1404 is used to execute instructions of software that may be loaded into memory 1406. Processor unit 1404 includes one or more processors. For example, 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 some other suitable type of processor. In addition, processor unit 1404 may be implemented using one or more heterogeneous processor systems in which a main processor and auxiliary processors are present on a single chip. As another illustrative example, processor unit 1404 may be a symmetric multi-processor system that includes multiple processors of the same type on a single chip.
[0154] Memory 1406 and persistent storage 1408 are examples of storage devices 1416. A storage device is any hardware capable of storing information, such as, but not limited to, at least one of data, program instructions in functional form, or other suitable information, which may be stored temporarily, permanently, or both temporarily and permanently. In these illustrative examples, storage devices 1416 may also be referred to as computer-readable storage devices. In these examples, memory 1406 may be, for example, a 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.
[0155] For example, persistent storage 1408 may include one or more components or devices. For example, persistent storage 1408 may be a hard disk, a solid-state drive (SSD), flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination thereof. The media used by persistent storage 1408 may also be removable. For example, a removable hard disk may be used for persistent storage 1408.
[0156] In these illustrative examples, communications unit 1410 provides for communications with other data processing systems or devices. In these illustrative examples, communications unit 1410 is a network interface card.
[0157] Input / output unit 1412 allows input and output of data with other devices that may be 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, mouse, or other suitable input devices. Additionally, input / output unit 1412 may send output to a printer. Display 1414 provides a mechanism for displaying information to a user.
[0158] 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, which may be located in a memory, such as memory 1406.
[0159] These instructions are referred to as program instructions, computer usable program instructions, or computer readable program instructions, which can be read and executed by a processor in processor unit 1404. The program instructions in different embodiments may be embodied in different physical or computer readable storage media, such as memory 1406 or persistent storage device 1408.
[0160] Program instructions 1418 are located in functional form on computer readable media 1420, which may be selectively removed and loaded or transferred to data processing system 1400 for execution by processor unit 1404. In these illustrative examples, program instructions 1418 and computer readable media 1420 form computer program product 1422. In the illustrative examples, computer readable media 1420 is computer readable storage media 1424.
[0161] Computer-readable storage media 1424 is a physical or tangible storage device for storing program instructions 1418, rather than a medium that propagates or transmits program instructions 1418. As used herein, computer-readable storage media 1424 itself should not be interpreted as a transient signal, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or an electrical signal transmitted through wires.
[0162] Alternatively, the program instructions 1418 may be transmitted to the data processing system 1400 using a computer readable signal medium. A computer readable signal medium is 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 via a connection, such as a wireless connection, a fiber optic cable, a coaxial cable, an electric wire, or any other suitable type of connection.
[0163] In addition, as used herein, "computer-readable medium 1420" may be singular or plural. For example, program instructions 1418 may be located in computer-readable medium 1420 in the form of a single storage device or system. In another example, program instructions 1418 may be located in computer-readable medium 1420, which is distributed in multiple data processing systems. In other words, some instructions in program instructions 1418 may be located in one data processing system, while other instructions in program instructions 1418 may be located in one data processing system. For example, a portion of program instructions 1418 may be located in computer-readable medium 1420 in a server computer, while another portion of program instructions 1418 may be located in computer-readable medium 1420 in a group of client computers.
[0164] The different components shown 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 components may be incorporated into or otherwise form a part of another component. For example, in some illustrative examples, memory 1406, or portions thereof, may be incorporated into processor unit 1404. Different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of the components shown for data processing system 1400. Fig.14 Other components shown in the can be varied from the illustrative examples shown. The different embodiments can be implemented using any hardware device or system capable of executing program instructions 1418.
[0165] Therefore, exemplary embodiments of the present invention provide a computer-implemented method, computer system, and computer program product for or manipulating elements (e.g., text and shapes) in an image. In an illustrative example, editable text is created from text in an image. The editable text has changeable text properties. A text layer is formed for the image using the editable text created from the text in the image. The editable text is located in a text position in the text layer corresponding to the position of the text in the image. A group of editable shapes corresponding to a group of shapes in the image is created. The group of editable shapes has changeable shape properties. A shape layer is formed for the image using the group of editable shapes. The group of editable shapes has a group of shape positions in the shape layer that correspond to a group of positions of the group 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.
[0166] In the illustrative example, the text layer and the shape layer can be displayed so that both layers have the same appearance or visual appearance as the image. Editing of these layers can be performed more easily than pixels in the image.
[0167] The image manager in the illustrative examples includes processes that can be implemented in applications such as graphic editors, web design programs, computer-aided design programs, or other types of applications. The new image generated by the positioning process described in the different examples has the same visual appearance as the original image.
[0168] Additionally, in the illustrative examples, software user interface screenshots can be converted to images, and these images can be edited for text. Additionally, conceptual graphics and schematics can be corrected or updated. In the various illustrative examples, incorrect wording, typos, spelling errors, and other issues can be corrected more easily.
[0169] Furthermore, blurred images can be reused and improved using illustrative examples to create new images containing editable text and editable shapes. The editable text and editable shapes can have a cleaner appearance while maintaining the same visual appearance. In other words, the new image does not have to exactly match the original image containing the pixels. As another example, geographic maps can be updated and recreated. Map text and terrain outlines can be more easily developed from the original map in one language to a different language. Furthermore, using the editable text and editable shapes in the new image can improve searchability compared to using the pixels in the original image.
[0170] The descriptions of different exemplary embodiments are presented for the purpose of illustration and description and are not intended to be exhaustive or limited to the embodiments in the disclosed form. Different illustrative examples describe components that perform actions or operations. In exemplary embodiments, the components can be configured to perform the described actions or operations. For example, the components can have a configuration or design of a structure that provides the components with the ability to perform the actions or operations described in the illustrative examples performed by the components. In addition, with respect to the terms "include," "comprises," "has," "contains," and variations thereof as used herein, these terms are intended to be inclusive in a manner similar to the term "comprises" as an open transition word, without excluding any additional or other elements.
[0171] The description of various embodiments of the present invention is given for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Not all embodiments will include all of the features described in the illustrative examples. In addition, different exemplary embodiments may provide different features from other exemplary embodiments. Many modifications and variations will be clear to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found on the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A computer-implemented method for manipulating an image composed of pixels, the computer-implemented method comprising: A set of processor units creates editable text based on the text in the image, wherein the editable text has changeable text attributes; forming, by the set of processor units, a text layer for the image, the text layer having the editable text created from the text in the image, wherein the editable text is located in a text position in the text layer corresponding to a position of the text in the image; creating, by the set of processor units, a set of editable shapes corresponding to a set of shapes in the image, wherein the set of editable shapes have changeable shape attributes; and A shape layer of the image is formed by the set of processor units, the shape layer having the set of editable shapes, wherein the set of editable shapes has a set of shape positions in the shape layer, the set of shape positions corresponding to a set of positions of the set of shapes in the image.
2. The computer-implemented method of claim 1 , further comprising: displaying, by the set of processor units, the text layer and the shape layer in a graphical user interface on a display system; as well as User input manipulating at least one of the set of editable shapes or the editable text is received by the set of processor units.
3. The computer-implemented method of claim 1 , further comprising: The text layer and the shape layer are combined, by the set of processor units, into an editable image including the editable text and the set of editable shapes.
4. The computer-implemented method of claim 3, wherein: The editable image has the visual appearance of the image.
5. The computer-implemented method of claim 1 , further comprising: Determining, by the group of processor units, the text position of the editable text according to the position of the text in the image; as well as The set of shape positions of the set of editable shapes are determined by the set of processor units based on the set of positions of the set of shapes in the image.
6. The computer-implemented method of claim 1 , wherein: Creating the editable text according to the text in the image by the group of processor units, wherein the editable text has the changeable text attribute comprises: performing optical character recognition by the set of processor units to identify the editable text from the pixels forming the text in the image; identifying, by the set of processor units, a set of current text attributes for the editable text using the pixels forming the text in the image; and The changeable text attribute is set as the current text attribute by the set of processor units.
7. The computer-implemented method of claim 1 , wherein: Creating, by the set of processor units, the set of editable shapes corresponding to the set of shapes in the image, wherein the set of editable shapes having the changeable shape attributes comprises: performing, by the set 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 set of processor units, a set of current shape attributes for the set of shapes in the image using the pixels forming the set of shapes in the image; and The changeable shape attributes are set as the current shape attributes by the set of processor units.
8. The computer-implemented method of claim 1 , wherein: The changeable text attribute is selected from at least one of the following: font name, style, size, color, bold, italic, or underline.
9. The computer-implemented method of claim 1 , wherein: The changeable shape attribute is selected from at least one of the following: line width, line type, line color, transparency level, fill color, fill pattern, or alignment.
10. The computer-implemented method of claim 1, wherein: The changeable text attribute has an initial value that causes the editable text to have a visual appearance of the text in the image, and wherein the changeable shape attribute has an initial value that causes the set of editable shapes to have a visual appearance of the set of shapes in the image.
11. A computer system comprising: A set of processor units, wherein the set of processor units execute program instructions to: Creating editable text from text in an image composed of pixels, wherein the editable text has changeable text attributes; forming a text layer of the image, the text layer having the editable text created based on the text in the image, wherein the editable text is located in a text position in the text layer corresponding to a 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 have changeable shape properties; and A shape layer is formed for the image, the shape layer having the set of editable shapes, wherein the set of editable shapes has a set of shape positions in the shape layer, the set of shape positions corresponding to a set of positions of the set of shapes in the image.
12. The computer system according to claim 11, wherein: The set of processor units execute program instructions to: displaying the text layer and the shape layer in a graphical user interface on a display system; and User input manipulating at least one of the set of editable shapes or the editable text is received.
13. The computer system according to claim 11, wherein: The set of processor units execute program instructions to: The text layer and the shape layer are combined into an editable image including the editable text and the set of editable shapes.
14. The computer system of claim 13, wherein: The editable image has the visual appearance of the image.
15. The computer system according to claim 11, wherein: The set of processor units execute program instructions to: Determining the text position of the editable text according to the position of the text in the image; and The set of shape positions of the set of editable shapes is determined based on the set of positions of the set of shapes in the image.
16. The computer system according to claim 11, wherein: The changeable text attribute is selected from at least one of the following: font name, style, size, color, bold, italic, or underline.
17. The computer system according to claim 11, wherein: The changeable shape attribute is selected from at least one of: line width, line type, line color, transparency level, fill color, fill pattern, or alignment.
18. The computer system according to claim 11, wherein: The changeable text property has an initial value that causes the editable text to have a visual appearance of the text in the image, and wherein the changeable shape property has an initial value that causes the set of editable shapes to have a visual appearance of the shapes in the image.
19. A computer program product for manipulating an image composed of pixels, the computer program product comprising a computer readable storage medium having program instructions, the program instructions being executable by a computer system to cause the computer system to perform the following method: Creating editable text based on the text in the image, wherein: The editable text has changeable text attributes; forming a text layer of the image, the text layer having the editable text created based on the text in the image, wherein the editable text is located in a text position in the text layer corresponding to a 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 have changeable shape properties; and A shape layer is formed for the image, the shape layer having the set of editable shapes, wherein the set of editable shapes has a set of shape positions in the shape layer, the set of shape positions corresponding to a set of positions of the set of shapes in the image.
20. The computer program product of claim 19, further comprising: displaying the text layer and the shape layer in a graphical user interface on a display system; as well as User input manipulating at least one of the set of editable shapes or the editable text is received.