Many device users have portable electronic and computing devices, such as mobile phones, tablet computers, multimedia devices, and similar mobile devices. These types of mobile devices are increasingly designed with more memory and processing capabilities, and generally include a camera device that can be utilized to capture digital images. With the increased memory and processing capabilities, these types of mobile devices can also be used to run imaging applications, such as may be used for image processing and/or sketch creation. These imaging applications that are designed for user interaction to create sketches and other artwork generally include or support multiple brush types, which a user can select to draw in a sketch interface, paint on a virtual canvas, and the like.
The imaging applications that support the multiple brush types typically display the available brushes in a user interface as a list or grid of static image thumbnails, where each thumbnail displays an example path or segment drawn with a brush to show the type of result expected when the brush is selected for use. To determine an actual result of using a particular brush in an image of a sketch, painting, or other artwork, the user has to select the brush and create a brush stroke in the image. If the user then does not like the appearance of brush type, the user has to erase or undo the brush stroke input and start over with selecting a different brush to try in the image. This can be frustrating to the user and result in an unfavorable user experience when working with a particular imaging application.
This Summary introduces features and concepts of multiple brush strokes preview, which is further described below in the Detailed Description and/or shown in the Figures. This Summary should not be considered to describe essential features of the claimed subject matter, nor used to determine or limit the scope of the claimed subject matter.
Multiple brush strokes preview is described. In embodiments, a computing device implements a virtual brush application, and a virtual brushes interface is displayed that includes brush drawing surfaces, where each brush drawing surface corresponds to a virtual brush of a brush type. A drawing input can be received in one of the brush drawing surfaces in the virtual brushes interface. A brush segment of the virtual brush that corresponds to the brush drawing surface is generated, and the brush segment is displayed in the brush drawing surface in the form of the drawing input. Additionally, brush segments of all the virtual brushes are generated approximately simultaneously for display in the corresponding brush drawing surfaces, where each of the brush segments are displayed in the corresponding brush drawing surface in the form of the drawing input.
In implementations, the brush segments of all the virtual brushes are generated approximately simultaneously for display as a multiple brush strokes preview of the respective brush types in the virtual brushes interface. A scroll input can be received to scroll the display of the virtual brushes interface, which displays additional brush drawing surfaces that each correspond to an additional virtual brush of a different brush type. The brush segments of the additional virtual brushes are displayed in the corresponding additional brush drawing surfaces, and each of the brush segments are displayed in the form of the drawing input as a result of the brush segments of the additional virtual brushes being generated when the brush segments of all the virtual brushes are generated.
In implementations, the virtual brushes that are displayed in the virtual brushes interface are organized in a brush library. A user input can be received as a library input to select a different brush library of additional virtual brushes, which displays additional brush drawing surfaces that each correspond to one of the additional virtual brushes of a different brush type. The brush segments of the additional virtual brushes are displayed in the corresponding additional brush drawing surfaces, and each of the brush segments are displayed in the form of the drawing input as a result of the brush segments of the additional virtual brushes in the different brush library being generated when the brush segments of all the virtual brushes are generated. A user touch input can also be received within a brush drawing surface of a virtual brush to initiate a brush template interface that can be utilized to edit the virtual brush and/or create additional virtual brushes. The brush template interface includes an editable preview of the brush segment of the virtual brush, and the brush segment of the virtual brush is displayed in the form of the drawing input.
Embodiments of multiple brush strokes preview are described with reference to the following Figures. The same numbers may be used throughout to reference like features and components that are shown in the Figures:
Embodiments of multiple brush strokes preview are described, and the techniques enable a user of a mobile device, such as a mobile phone or tablet device, to simultaneously preview virtual brushes of different brush types in a virtual brushes interface. Brush segments for each of the virtual brushes are displayed in a corresponding brush drawing surface in the virtual brushes interface. A user of the mobile device can initiate a touch and hold input in one of the brush drawing surfaces in the virtual brushes interface, and all of the individual brush drawing surfaces are cleared of the last displayed brush segment of the respective virtual brush, allowing the user to draw a new brush segment. The user can then initiate a drawing input in the one brush drawing surface that is selected and a brush segment of the virtual brush that corresponds to the brush drawing surface is generated. The brush segment that is drawn by the user is displayed in the brush drawing surface in the form of the drawing input. Additionally, brush segments of all the virtual brushes are generated approximately simultaneously for display in all of the corresponding brush drawing surfaces, and each of the brush segments are displayed in the corresponding brush drawing surface in the form of the drawing input from the user.
As the user draws a brush segment in any one of the drawing surfaces, the input data of the brush segment that is being drawn is delivered to all of the brush drawing surfaces simultaneously, which then causes all of the brush segments in the brush drawing surfaces to update synchronously in real-time for a multiple brush strokes preview. The techniques of multiple brush strokes preview allow a user to then preview what all of the brush types look like for the input drawing path or drawing form of the one particular selected brush segment. With the multiple brush strokes preview displayed in the virtual brushes interface, the user can scribble or draw just one brush segment input with a selected virtual brush and see the effect on all of the brush styles in a live preview mode. As a user convenience, this provides a time-savings efficiency, rather than having to select and try out each brush individually on a canvas or in an image, and then having to erase or undo the brush strokes and start over if the user does not like the appearance of the brush type. The multiple brush strokes preview also conserves processing resources and device power by the user not having to go through the select, draw, and erase or undo process for each brush to find a brush type that is suitable for a particular application.
While features and concepts of multiple brush strokes preview can be implemented in any number of different devices, systems, networks, environments, and/or configurations, embodiments of multiple brush strokes preview are described in the context of the following example devices, systems, and methods.
For example, the user can touch-select one of the virtual brushes 106, such as the “hatched” brush type at 112 to initiate a brush template interface 114 as shown at 116. The brush template interface 114 includes the selected “hatched” brush type displayed in a preview section 118 of the brush template interface, and the preview of the brush changes with brush-edit inputs. The user can modify and/or create a new brush type in the brush template interface 114, and the modified or new brush type can be saved in a brush library with different virtual brushes of various brush types as created by the user of the device. In this example, the brush template interface 114 includes selectable brush-edit controls, such as a type of brush control and a color control shown at 120. Any number of other various brush creation and edit controls can be implemented for user selection and application to modify and/or create brush styles of virtual brushes. In this example, the brush template interface 114 also includes additional brush-edit controls 122 displayed in a tool bar 124 of the brush template interface, such as a style, crop, refine, and properties controls that a user can select to edit the brush type before being saved as a brush template in the brush library.
When the user of the device touches and holds one of the virtual brushes 106 in the virtual brushes interface 104, all of the individual brush drawing surfaces are cleared of the last displayed segment of the respective virtual brush, allowing the user to then draw a new brush segment. For example, the brush drawing surfaces shown in the virtual brushes interface 104 in
This example 200 also illustrates multiple brush strokes preview, as described herein. As the user draws the brush segment 204 of the virtual brush 202 in the brush drawing surface 206, the continuation of the brush segment being drawn is shown in the transition at 214, as well as the brush segment 204 shown completed at 216. At the same time, all of the brush segments of the virtual brushes 106 in the respective brush drawing surfaces are generated for display along the same drawing path, or in the same drawing form, as the brush segment 204 that the user draws. For example, the brush segment 210 of the virtual brush 208 in the “floral” brush type is displayed in a similar drawing path or drawing form in the brush drawing surface 212 as the brush segment 204 of the virtual brush 202 in the brush drawing surface 206. Additionally, the continuation of all the various brush segments being generated for display in the respective brush drawing surfaces is shown in the transition at 214, and are similarly shown completed at 216.
As the user draws a brush segment in any one of the drawing surfaces, the input data of the brush segment that is being drawn is delivered to all of the brush drawing surfaces simultaneously, which then causes all of the brush segments in the brush drawing surfaces to update synchronously in real-time for a multiple brush stroke preview. The user can then preview in the virtual brushes interface 104 what all of the brush types look like for the input drawing path or drawing form of the one particular selected brush segment (e.g., brush segment 204 in this example). A static bitmap image of a brush type can only convey limited, general information about the kind of marks that a particular virtual brush can be used to create, whereas selecting and utilizing the brush is a different, tactile user experience.
With the multiple brush strokes preview displayed in the virtual brushes interface 104, a user can scribble or draw just one segment input with a selected virtual brush 106 and see the effect on all of the brush styles in a live preview mode. As a user convenience, this provides a time-savings efficiency, rather than having to select and try out each brush individually on a canvas or in an image, and then having to erase or undo the brush strokes and start over if the user does not like the appearance of the brush type. The multiple brush strokes preview also conserves processing resources and device power by the user not having to go through the select, draw, and erase or undo process for each brush to find a brush type that is suitable for a particular application.
In this example, the additional virtual brushes 306 include a “paintbrush”, a “halftone”, a “vector brush”, and “loops” brush styles that were not previously displayed. However, as the user draws the brush segment 204 of the virtual brush 202 in the brush drawing surface 206 (i.e., as shown and described with reference to
As described above with reference to
As described above, the brush library 110 of the multiple virtual brushes 404 may be provided with the virtual brush application, or a brush library with different virtual brushes of various brush types can be created by the user of the device. For example, the user can select the drop-down selector 414 to display a list of alternative brush libraries, and then select a different brush library to display other virtual brushes in the virtual brushes interface 104. For example, the user can select the “sketchy” brush library 416 as shown at 418, and additional virtual brushes 420 are shown in the virtual brushes interface. As shown in the example, the brush stroke preview of the brush segment 410 (e.g., the word “hello”) is persisted to the additional virtual brushes 420 in the different brush library that is displayed in the virtual brushes interface. As the user draws the brush segment 410 of the virtual brush 408 in the brush drawing surface 412, the brush segments of the additional virtual brushes 420 in the different brush library are also updated synchronously in real-time, and when the user selects the different brush library, the additional virtual brushes 420 that were not previously displayed are similarly shown completed at 418.
As also described above, the user can touch-select one of the virtual brushes 404, such as the “dry brush” brush type to initiate the brush template interface 114 as shown at 422. The brush template interface 114 includes the selected “dry brush” brush type displayed in the preview section 118 of the brush template interface. As shown in the example, the brush stroke preview of the brush segment 410 (e.g., the word “hello”) as drawn by the user is persisted to the preview section 118 of the brush template interface 114, from which the user can then edit or create a new brush style.
The computing device 502 includes the virtual brushes interface 104 and the brush template interface 114 of the virtual brush application 510, as referred to above. The virtual brush application 510 can be implemented as a software application or module, such as computer-executable software instructions that are executable with the processor 504 (or with a processing system) to implement embodiments of multiple brush strokes preview. The virtual brush application 510 can be stored on computer-readable storage memory (e.g., the device memory 506), such as any suitable memory device or electronic data storage implemented in the computing device.
In implementations, the virtual brushes interface can be displayed on a display of the tablet device 102 or the mobile phone 402, and the virtual brushes interface includes the brush drawing surfaces that display the virtual brushes preview 512 of each respective virtual brush 514. For example, the virtual brushes interface 104 is shown in
The virtual brush application 510 is implemented to receive a segment drawing input 516 (e.g., a user drawing input) in one of the brush drawing surfaces that is displayed in the virtual brushes interface 104. The virtual brush application can then generate, approximately simultaneously, brush segments of all the virtual brushes 514 for display in the corresponding brush drawing surfaces, where each of the brush segments are displayable in the corresponding brush drawing surface in the form of the segment drawing input. For example, the virtual brush application 510 receives a drawing input as the user draws the brush segment 204 of the virtual brush 202 in the brush drawing surface 206, as shown in
The virtual brush application 510 is also implemented to receive an initial touch input in one of the brush drawing surfaces before the drawing input is received; and, then clear the brush drawing surfaces so that the user can begin drawing a new brush segment. The virtual brush application 510 can also receive a touch input within a brush drawing surface of a virtual brush 514 to initiate the brush template interface 114, which is displayed to include an editable preview of the brush segment of the virtual brush, and the brush segment of the virtual brush is displayable in the form of the segment drawing input 516. For example, the brush template interface 114 shown in
The example system 500 also includes a cloud-based image service 522, such as Adobe Creative Cloud™ that is accessible by client devices, to include the computing device 502, the tablet device 102, and the mobile phone 402. The image service 522 includes data storage 524 that may be implemented as any suitable memory, memory device, or electronic data storage for network-based data storage. The data storage maintains a brush library 526 of virtual brushes 528 that are accessible by an imaging application 530, such as when a user accesses the imaging application 530 (e.g., as a network-based application) from a client device (e.g., the computing device 502) to create a sketch 532 or other art work with the imaging application. The computing device 502 can communicate the virtual brushes 514 to the image service 522, where the virtual brushes are then saved as the virtual brushes 528 in the brush library 526 that is accessible by the virtual brush application 510 on the computing device. The cloud-based image service 522 may also include the virtual brush application 534 as a network-based application that is accessible from a client device.
The cloud-based image service 522 can also be implemented with server devices that are representative of one or multiple hardware server devices of the image service. Further, the cloud-based image service 522 can be implemented with various components, such as a processing system and memory, as well as with any number and combination of differing components as further described with reference to the example device shown in
The example system 500 also includes a network 536, and any of the devices, servers, and/or services described herein can communicate via the network, such as for data communication between the computing device 502 and the cloud-based image service 522 The network can be implemented to include a wired and/or a wireless network. The network can also be implemented using any type of network topology and/or communication protocol, and can be represented or otherwise implemented as a combination of two or more networks, to include IP-based networks and/or the Internet. The network may also include mobile operator networks that are managed by a mobile network operator and/or other network operators, such as a communication service provider, mobile phone provider, and/or Internet service provider.
Example methods 600 and 700 are described with reference to respective
At 602, a virtual brushes interface is displayed that includes brush drawing surfaces, where each brush drawing surface corresponds to a virtual brush of a brush type. For example, the virtual brushes interface 104 is displayed on the tablet device 102, and the virtual brushes interface includes the brush drawing surfaces (e.g., the brush drawing surface 206 for the virtual brush 202), where each brush drawing surface corresponds to a virtual brush of a brush type. In implementations, the virtual brushes 106 that are displayed in the virtual brushes interface 104 are organized in a brush library 110. Similarly, the virtual brushes interface 104 is displayed on the mobile phone 402, and the virtual brushes interface includes the brush drawing surfaces (e.g., the brush drawing surface 412 for the virtual brush 408), where each brush drawing surface corresponds to a virtual brush of a brush type.
At 604, all of the brush drawing surfaces are cleared responsive to an initial touch input received in one of the brush drawing surfaces. For example, an initial touch input is received, such as when the user of the device touches and holds one of the virtual brushes 106 in the virtual brushes interface 104. All of the individual brush drawing surfaces are then cleared of the last displayed segment of the respective virtual brush, allowing the user to then draw a new brush segment. As shown at 200 in
At 606, a drawing input is received in the one brush drawing surface selected by the user and, at 608, a brush segment of the virtual brush that corresponds to the one brush drawing surface is generated, where the brush segment is displayed in the one brush drawing surface in a form of the drawing input. For example, the virtual brush application 510 receives a drawing input as the user draws the brush segment 204 of the virtual brush 202 in the brush drawing surface 206. The continuation of the brush segment 204 being drawn is shown in the transition at 214, as well as the brush segment 204 shown completed at 216. Similarly, a user of the mobile phone 402 initiates a drawing input with the virtual brush 408 to draw the brush segment 410 of the virtual brush in the brush drawing surface 412 of the virtual brush. For example, the user draws or writes the word “hello” as the brush segment 410, which is shown completed in the brush drawing surface 412.
At 610, approximately simultaneously, brush segments of all the virtual brushes are generated for display in the corresponding brush drawing surfaces, and each of the brush segments are displayed in the form of the drawing input. For example, the virtual brush application 510 generates all of the brush segments of the virtual brushes 106 in the respective brush drawing surfaces for display along the same drawing path, or in the same drawing form, as the brush segment 204 that the user draws. For example, the brush segment 210 of the virtual brush 208 in the “floral” brush type is displayed in a similar drawing path or drawing form in the brush drawing surface 212 as the brush segment 204 of the virtual brush 202 in the brush drawing surface 206. Additionally, the continuation of all the various brush segments being generated for display in the respective brush drawing surfaces is shown in the transition at 214, and are shown completed at 216. The brush segments of all the virtual brushes 106 that are generated approximately simultaneously are displayed in the virtual brushes interface 104 as a multiple brush strokes preview of the respective brush types. Similarly, each of the virtual brushes 404 shown in the virtual brushes interface 104 on the mobile phone 402 are displayed in a respective, individual brush drawing surface, and as the user draws or writes the brush segment 410 (e.g., the word “hello”), all of the brush segments of the virtual brushes 404 in the respective brush drawing surfaces are generated for display along the same drawing path (e.g., also as the word “hello”).
At 702, a scroll input is received to scroll the display of the virtual brushes interface, and at 704, additional brush drawing surfaces are displayed that each correspond to an additional virtual brush of a different brush type. For example, the virtual brush application 510 receives the scroll input to scroll the virtual brushes interface as shown at 302 to view other virtual brushes, and as the user scrolls the virtual brushes interface 104, the device display transitions as shown at 304 and the additional virtual brushes 306 are displayed for viewing.
At 706, the brush segments of the additional virtual brushes are displayed in the corresponding additional brush drawing surfaces, where each of the brush segments are displayed in the form of the drawing input. For example, the additional virtual brushes 306 that were not previously displayed are similarly shown completed at 304, where the brush segments of the virtual brushes are generated for display along the same drawing path, or in the same drawing form, as the brush segment 204 that the user drew previously. The brush segments of the additional virtual brushes 306 are generated by the virtual brush application 510 when the brush segments of all the virtual brushes are generated.
At 708, a library input is received to select a different brush library of additional virtual brushes, and at 710, additional brush drawing surfaces are displayed that each correspond to one of the additional virtual brushes of a different brush type. For example, the virtual brush application 510 receives a library input when the user selects the drop-down selector 414 in the virtual brushes interface 104 to display a list of alternative brush libraries, and then selects a different brush library to display the additional virtual brushes 420 in the virtual brushes interface 104.
At 712, the brush segments of the additional virtual brushes are displayed in the corresponding additional brush drawing surfaces, where each of the brush segments are displayed in the form of the drawing input. For example, the brush stroke preview of the brush segment 410 (e.g., the word “hello”) is persisted to the additional virtual brushes 420 in the different brush library 416 that is displayed in the virtual brushes interface 104. As the user draws the brush segment 410 of the virtual brush 408 in the brush drawing surface 412, the brush segments of the additional virtual brushes 420 in the different brush library are also updated, and when the user selects the different brush library, the additional virtual brushes 420 that were not previously displayed are similarly shown completed at 418. The brush segments of the additional virtual brushes 420 in the different brush library 416 are generated by the virtual brush application 510 when the brush segments of all the virtual brushes are generated.
At 714, a touch input is received within a brush drawing surface of the virtual brush to initiate a brush template interface, and at 716, the brush template interface is displayed including an editable preview of the brush segment of the virtual brush, where the brush segment of the virtual brush is displayed in the form of the drawing input. For example, the virtual brush application 510 receives a touch input when the user touch-selects one of the virtual brushes 404, such as the “dry brush” brush type to initiate the brush template interface 114 as shown at 422. The brush template interface 114 includes the selected “dry brush” brush type displayed in the preview section 118 of the brush template interface, and the brush stroke preview of the brush segment 410 (e.g., the word “hello”) as drawn by the user is persisted to the preview section 118 of the brush template interface 114.
The device 802 includes communication devices 804 that enable wired and/or wireless communication of device data 806, such as brush templates and imaging applications content that is transferred from one computing device to another, and/or synched between multiple computing devices. The device data can include any type of audio, video, and/or image data that is generated by applications executing on the device. The communication devices 804 can also include transceivers for cellular phone communication and/or for network data communication.
The device 802 also includes input/output (I/O) interfaces 808, such as data network interfaces that provide connection and/or communication links between the device, data networks, and other devices. The I/O interfaces can be used to couple the device to any type of components, peripherals, and/or accessory devices, such as a digital camera device that may be integrated with device 802. The I/O interfaces also include data input ports via which any type of data, media content, and/or inputs can be received, such as user inputs to the device, as well as any type of audio, video, and/or image data received from any content and/or data source.
The device 802 includes a processing system 810 that may be implemented at least partially in hardware, such as with any type of microprocessors, controllers, and the like that process executable instructions. The processing system can include components of an integrated circuit, programmable logic device, a logic device formed using one or more semiconductors, and other implementations in silicon and/or hardware, such as a processor and memory system implemented as a system-on-chip (SoC). Alternatively or in addition, the device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that may be implemented with processing and control circuits. The device 802 may further include any type of a system bus or other data and command transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures and architectures, as well as control and data lines.
The device 802 also includes computer-readable storage memory 812, such as data storage devices that can be accessed by a computing device, and that provide persistent storage of data and executable instructions (e.g., software applications, modules, programs, functions, and the like). The computer-readable storage memory described herein excludes propagating signals. Examples of computer-readable storage memory include volatile memory and non-volatile memory, fixed and removable media devices, and any suitable memory device or electronic data storage that maintains data for computing device access. The computer-readable storage memory can include various implementations of random access memory (RAM), read-only memory (ROM), flash memory, and other types of storage memory in various memory device configurations.
The computer-readable storage memory 812 provides storage of the device data 806 and various device applications 814, such as an operating system that is maintained as a software application with the computer-readable storage memory and executed by the processing system 810. In this example, the device applications also include imaging applications 816 that implement embodiments of multiple brush strokes preview, such as when the example device 802 is implemented as the computing device 502 shown in
The device 802 also includes an audio and/or video system 818 that generates audio data for an audio device 820 and/or generates display data for a display device 822. The audio device and/or the display device include any devices that process, display, and/or otherwise render audio, video, display, and/or image data, such as the image content of a digital photo. In implementations, the audio device and/or the display device are integrated components of the example device 802. Alternatively, the audio device and/or the display device are external, peripheral components to the example device. In embodiments, at least part of the techniques described for multiple brush strokes preview may be implemented in a distributed system, such as over a “cloud” 824 in a platform 826. The cloud 824 includes and/or is representative of the platform 826 for services 828 and/or resources 830. For example, the services 828 may include the cloud-based image service described with reference to
The platform 826 abstracts underlying functionality of hardware, such as server devices (e.g., included in the services 828) and/or software resources (e.g., included as the resources 830), and connects the example device 802 with other devices, servers, etc. The resources 830 may also include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the example device 802. Additionally, the services 828 and/or the resources 830 may facilitate subscriber network services, such as over the Internet, a cellular network, or Wi-Fi network. The platform 826 may also serve to abstract and scale resources to service a demand for the resources 830 that are implemented via the platform, such as in an interconnected device embodiment with functionality distributed throughout the system 800. For example, the functionality may be implemented in part at the example device 802 as well as via the platform 826 that abstracts the functionality of the cloud 824.
Although embodiments of multiple brush strokes preview have been described in language specific to features and/or methods, the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of multiple brush strokes preview, and other equivalent features and methods are intended to be within the scope of the appended claims. Further, various different embodiments are described and it is to be appreciated that each described embodiment can be implemented independently or in connection with one or more other described embodiments.