1. Field
This disclosure generally relates to display screens. More particularly, the disclosure relates to pixel rendering for display screens.
2. General Background
Screen resolution of computing devices such as smart phones, tablets, PCs, etc. is currently increasing rapidly. Newer computing devices may have as much as twice the resolution of the previous version. With such fast paced changes in resolution, a vast disparity in resolution is found in various devices. With varying screen resolutions and screen sizes, the pixel size is unpredictable. For example, on a high resolution screen with a small pixel size, the small icons and buttons will likely be difficult to utilize. The difficulty is particularly problematic for touch enabled devices. In other words, the icons have not been scaled well to reflect the change in resolution for a given device.
A current approach is to utilized vector-based icons. Vector graphics are utilized as mathematical outlines, i.e., an abstract description of the lines that create the image. The vector graphics are resolution independent. However, vector-based icons typically do not scale well below a certain size. Since many computing devices such as smart phones typically have small icons, the vector graphics approach may not scale well for the icons utilized in those smart phones.
In one aspect of the disclosure, a computer program product is provided. The computer program product includes a computer useable medium having a computer readable program. The computer readable program when executed on a computer causes the computer to determine a list of coordinate locations of an icon. Further, the computer readable program when executed on the computer causes the computer to tag each of the coordinate locations with scaling data to generate a plurality of tagged coordinate locations for the icon. The scaling data indicates an automatic scaling adjustment based on a size of the icon being changed to accommodate a resolution of a display. In addition, the computer readable program when executed on the computer causes the computer to automatically scale the icon based on the plurality of tagged coordinate locations for the icon and the resolution of the display to generate a scaled icon. The computer readable program when executed on the computer also causes the computer to render the scaled icon in the display.
In another aspect of the disclosure, a process is provided. The process determines a list of coordinate locations of an icon. Further, the process tags each of the coordinate locations with scaling data to generate a plurality of tagged coordinate locations for the icon. The scaling data indicates an automatic scaling adjustment based on a size of the icon being changed to accommodate a resolution of a display. In addition, the process automatically scales the icon based on the plurality of tagged coordinate locations for the icon and the resolution of the display to generate a scaled icon. The process also renders the scaled icon in the display.
In yet another aspect of the disclosure, a system is provided. The system includes a processor that determines a list of coordinate locations of an icon, tags each of the coordinate locations with scaling data to generate a plurality of tagged coordinate locations for the icon, and automatically scales the icon based on the plurality of tagged coordinate locations for the icon and the resolution of the display to generated a scaled icon. The scaling data indicates an automatic scaling adjustment based on a size of the icon being changed to accommodate a resolution of a display. The system also includes a rendering component that renders the scaled icon in the display.
The above-mentioned features of the present disclosure will become more apparent with reference to the following description taken in conjunction with the accompanying drawings wherein like reference numerals denote like elements and in which:
Further,
In addition,
A shape pixel rendering method, system, and computer program product are provided to scale a shape. An example of a shape is an icon, but many other types of shapes may be utilized with the configurations provided for herein. A list of coordinate locations of an icon may be determined. Each of those coordinate locations may be tagged with scaling data that indicates an automatic scaling adjustment based on a size of the icon being changed to accommodate a resolution of a display. The technology that performs the adjustments may be referred to as hinting technology.
With respect to a monochrome icon, shading may be added to the monochrome icon. The shading may follow different rules as the monochrome icon is scaled down. During a scaling down, the rules ensure that the lines remain crisp. For example, one dark pixel instead of two dark pixels may be utilized to indicate an alignment with one or more boundaries.
An outline is a list of coordinate locations that may be utilized, for example, to define an icon. Information is added to individual points in a vector authoring tool to design icons in various sizes. The vector authoring tool may be able to open multiple windows or multiple views that would show how the icon looks in various different sizes. In one embodiment, an automated system identifies when a particular outline does not have enough annotation.
Further, in one embodiment, the shapes are made of outlines with control points. In addition, hinting may be a set of adjustments to those control points. The hinting may be applied as specific pixel densities or output sizes.
The icons utilized with hinting may rotate. Further, the icons may utilize color and/or shading. In addition, bitmap sources may be applied so that any of the configurations provided for herein may utilize bitmaps. For example, with caricaturing, as a scaling down occurs, certain details may be preserved.
In one embodiment, the icon may be displayed at multiple resolutions, e.g., 0.25×, 0.5×, 1.5×, 2×, etc. The user may then alter the icon at different resolutions. Accordingly, the user may make different adjustments to different size levels. For example, a tweak may only apply at multiples of one third, but not multiples of one quarter. As another example, on displays with ordered color triplets composing pixels, different sets of hints may be applied to the striped and unstriped axes.
A vector point may be selected so that the vector point may be relocated within the grid to scale the icon according to scaling requirements.
Further,
In addition,
In one embodiment, the hinting may be performed by example. For example, the system may monitor what adjustments are applied at different sizes to vector shapes and then guess future adjustments. In other words, the user input may be utilized to make better assessments. The user may review the guesses that the system has made to determine which guesses are correct and which are not. The system may work with or without this learning functionality. In one embodiment, the system may display the output in a number of resolutions. Further, the system may display previews with or without the adjustments.
In another embodiment, the hinting may be utilized with color. As an example, a curve may be marked as having to stay together when scaled.
The hinting configurations provided for herein may also be utilized for subpixel addressing, i.e., a side effect of color fringes being displayed as colors may be displayed where they should not. As an example, users often turn smartphones sideways to use the smartphones. However, the bitmaps that work well for portrait mode may not work well with landscape mode. In one embodiment, fine hinting adjustments may be made to minimize possible color fringes. The color fringing is carefully tuned so that, when displayed in the correct orientation, the spatial resolution is visibly improved. Scaling may be displayed as a mix of thick and thin slices. A rule may be specified that on output of white colored items should be displayed with the same width, an output of dark colored items should be displayed with the same width, and an output of white colored items and dark colored items should have the same width.
The shapes illustrated above are provided only as examples. The hinting configurations may be applied to outlines, individual symbols, lines, or the like.
The Input/Output (“I/O”) devices 508 can be coupled directly to the system configuration 502 or through intervening input/output controllers. Further, the I/O devices 508 may include a keyboard, a keypad, a mouse, a microphone for capturing speech commands, a pointing device, and other user input devices that will be recognized by one of ordinary skill in the art. Further, the I/O devices 508 may include output devices such as a printer, display screen, or the like. Further, the I/O devices 508 may include a receiver, transmitter, speaker, display, image capture sensor, biometric sensor, etc. In addition, the I/O devices 508 may include storage devices such as a tape drive, floppy drive, hard disk drive, compact disk (“CD”) drive, etc.
Network adapters may also be coupled to the system configuration 502 to enable the system configuration 502 to become coupled to other systems, remote printers, or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.
The processes described herein may be implemented in a general, multi-purpose or single purpose processor. Such a processor will execute instructions, either at the assembly, compiled or machine-level, to perform the processes. Those instructions can be written by one of ordinary skill in the art following the description of the figures corresponding to the processes and stored or transmitted on a computer readable medium. The instructions may also be created using source code or any other known computer-aided design tool. A computer readable medium may be any medium capable of carrying those instructions and include a CD-ROM, DVD, magnetic or other optical disc, tape, silicon memory (e.g., removable, non-removable, volatile or non-volatile), packetized or non-packetized data through wireline or wireless transmissions locally or remotely through a network. A computer is herein intended to include any device that has a general, multi-purpose or single purpose processor as described above.
It should be understood that the processes and systems described herein can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments containing both hardware and software elements. If software is utilized to implement the method or system, the software can include but is not limited to firmware, resident software, microcode, etc.
It is understood that the processes and systems described herein may also be applied in other types of processes and systems. Those skilled in the art will appreciate that the various adaptations and modifications of the embodiments of the processes and systems described herein may be configured without departing from the scope and spirit of the present processes, systems, and computer program products. Therefore, it is to be understood that, within the scope of the appended claims, the present processes, systems, and computer program products may be practiced other than as specifically described herein.