AU721222B2 - Color selection tool - Google Patents

Color selection tool Download PDF

Info

Publication number
AU721222B2
AU721222B2 AU55986/96A AU5598696A AU721222B2 AU 721222 B2 AU721222 B2 AU 721222B2 AU 55986/96 A AU55986/96 A AU 55986/96A AU 5598696 A AU5598696 A AU 5598696A AU 721222 B2 AU721222 B2 AU 721222B2
Authority
AU
Australia
Prior art keywords
color
blend
blends
colors
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
AU55986/96A
Other versions
AU5598696A (en
Inventor
Timothy Merrick Long
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPN3601A external-priority patent/AUPN360195A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU55986/96A priority Critical patent/AU721222B2/en
Publication of AU5598696A publication Critical patent/AU5598696A/en
Assigned to CANON KABUSHIKI KAISHA reassignment CANON KABUSHIKI KAISHA Alteration of Name(s) of Applicant(s) under S113 Assignors: CANON INFORMATION SYSTEMS RESEARCH AUSTRALIA PTY LTD, CANON KABUSHIKI KAISHA
Application granted granted Critical
Publication of AU721222B2 publication Critical patent/AU721222B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Color Image Communication Systems (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

I I t S F Ref: 343695
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
C
S
ORIGINAL
Name and Address of Applicant: Canon Kabushiki Kaisha 30-2 Shimomaruko 3-chome Ohta-ku Tokyo
JAPAN
,r^a4on 1.-format.on Sytem6 Resoa 1 Thomas Ho!t r-ive Nui Li Ryd New South Wales 2113 AI ITDA461TA Frch Australia Pty Ltd Actual Inventor(s): Address for Service: Invention Title: Timothy Merrick Long Spruson Ferguson, Patent Attorneys Level 33 St Martins Tower, 31 Market Street Sydney, New South Wales, 2000, Australia Color Selection Tool ASSOCIATED PROVISIONAL APPLICATION DETAILS [31] Application No(s) [331 Country PN3601
AU
[32] Application Date 16 June 1995 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5815 -1- COLOR SELECTION TOOL Background The present invention relates to a method and an apparatus for selecting a color and/or a transparency value of a computer graphics image.
Modem computer system have become increasingly popular for utilisation in the production of high quality, full color images. An image consists of a number of pixels, and each pixel may be defined to be of a certain color and to have certain transparency aspects.
Typically, a common format for representing a pixel is used. For example, one such common format is the Red, Green and Blue (RGB) format. In this format, each pixel may use 24 bits to represent the color, where eight bits are provided for each of the R, G and B components of the color of the pixel. With the 24-bit color definition, it is possible to represent over 16 million separate color. This effectively provides a high fidelity color space in which a large number of different colors can be represented with each color having only very minor variations in relation to the closest neighboring colors in the color 15 space.
:Still further, another eight bits may be used in the format to define a transparency aspect of each corresponding pixel. Eight bits of storage are also used for the transparency component, thereby resulting in a pixel storage size of 32 bits.
In order to choose a particular color within the gamut of all possible displayable 20 colors in such a color space, a number of color selection tools have been used in the prior :art. Most of these conventional tools rely on the display of the full color gamut of displayable colors in a compressed form. For a discussion of the utilisation of color in computer graphic images and various conventional color selection tools known in the art, reference is made to a standard text in the field such as Foley, Van Dam et.al, Computer 25 Graphics Principles and Practice, 2nd Ed., Reading Addison-Wesley Publishing Company, Inc (1990), 574-603.
Disadvantageously, the provision of such a large number of colors to select from often results in confusion when such conventional color selection tools are used by graphic artists or the like to create computer graphic images. For example, when the full gamut of displayable colors is displayed in a small color selection area on a display, the results are such that it is typically extremely difficult for a person to distinguish between closely similar colors.
A conventional color selection system is disclosed in U.S. Patent No. 5,254,978 that is used to create a palette of colorimetrically measured colors. The system is used to Lu preate and modify a color palette by selecting two end colors and interpellating between I:\ELEC\CISRA\OPEN\OPEN2\343695.dc those two colors to form a linear blend. The operator may then select a color from the blend and add it to a palette of colors. Colors from the palette may be modified or deleted while the creation of new colors is carried out in a manner analogous to an artist's color wash. Thus, this conventional system is used to select or modify colors of a color palette by a user first selecting two separate colors to form a color wash they color mixing region displayed on a video monitor. The wash or blend of the color mixing region is formed by interpellating colors in the CIELAB color space between the two user selected colors. The system is disadvantageous in that it requires a number of operations to be performed in order for an operator such as a graphic artist to select or create a new color. Firstly, the user must select two colors from the color palette to be used as the end points of the blend.
Once the blend has been generated, the user must then again select a color from the blend to be added to the color palette. If the user were then to wish to modify the color further, the foregoing steps would have to be iterated once again. Thus, for realistic applications, this would consequentially be disadvantageous the large number of operations and is cumbersome nature of the technique for modifying colors and would not lend itself to be in readily use by a user. A further disadvantage of this technique is that only a single blend is generated between the two selected colors and therefore does not enable a user to readily visualise the relationship between the colors of a chosen blend and those of other colors having different chromaticity in the neighbouring color space.
oo Summary It is an object of the present invention to provide an improved color selection tool for enabling the ready selection of colors in computer graphical images.
In accordance with a first aspect of the present invention, there is provided a method of displaying color for selection, said method comprising the steps of: displaying a first color in a first predefined area; displaying at least one blend each in a corresponding area, wherein each said at least one blend is different and each color of said at least one blend is within a predetermined distance in color space from said first color; selecting one color of said displayed at least one blend by a single input operation; displaying the selected color in the first predefined area; and displaying at least one further blend each in a corresponding area, wherein each said at least one further blend is different and each color of said at least one -k-J ~>further blend is within a predetermined distance in color space from said selected color.
I:\ELEC\CISRA\OPEN\OPEN20\343695.doc In accordance with a second aspect of the present invention, there is provided an apparatus for displaying color selectable by a user, said apparatus comprising: means for displaying a first color in a first predefined area; and means for displaying at least one blend each in a corresponding area, wherein each said at least one blend is different and each color of said at least one blend is within a predetermined distance in color space from said first color; and means for selecting one color of said at least one blend by a single input operation; and means for displaying the selected color in the first predefined area; and means for displaying at least one further blend each in a corresponding area, wherein each said at least one further blend is different and each color of said at least one further blend is within a predetermined distance in color space from said selected color.
In accordance with a third aspect, there is provided a color selection device comprising a color wheel having a radially central portion indicating a currently selected color and a series of radially increasing blends around said central portion, said radially increasing blends being blends from said currently selected color to predetermined points adjacent said currently selected color in a predetermined color space, wherein said S.currently selected colors and series of blends are changeable by selecting a color from one of said series of blends by a single input operation..
20 In accordance with a fourth aspect of the invention, there is provided a method of generating colors for selection of a color by a user, said method comprising the steps of: o displaying a first blend color in a first area; generating a plurality of color blends, each having said first blend color at one end and a second blend color at an opposite end and blend colors therebetween, wherein said blend colors gradually vary from said first blend color to said second blend color and are each within a predetermined distance in color space from said first blend color; displaying said first color and said plurality of color blends, whereby said color blends are radially configured in corresponding blend areas around said first area dependent on the color blends position in the color space, with each said color blend having the first blend color at said one end positioned adjacent to said first area; selecting one of said displayed blend colors by a single input operation; generating a further plurality of color blends, each having said selected blend color at one end of said corresponding blend and a third blend color at an opposite end of said blend, wherein said blend colors gradually vary from said selected blend color to said third blend color and are each within a predetermined distance in color space from Z/sad selected blend color; and I:\ELEC\CISA\OPEN\OPEN2\343695.doc -3Adisplaying said selected blend color in the first area and said further plurality of blends, whereby said blends are radially configured in corresponding blend areas around said first area dependent on the blends position in the color space, with each blend having the corresponding selected blend color at said one end positioned adjacent to said first area.
Brief Description of the Drawings The preferred embodiment of the present invention is described with reference to the accompanying drawings, in which: Figure 1 is a schematic diagram illustrating a color selection wheel according to the preferred embodiment; Figure 2 is a schematic diagram illustrating the incorporation of the color selection wheel of Fig. 1 into a color selection tool; Figure 3 is a flow diagram illustrating operation of the system according to the preferred embodiment; Figure 4 is a more detailed flow diagram of the operation of the system of Fig. 3; Figure 5 is a block diagram of a conventional computer for implementing the preferred embodiment.
20 Detailed Description In the color selection tool of the preferred embodiment, a currently selected color is displayed with variations of the currently selected color being shown around I:\ELEC\CISRA\OPEN\OPEN20\343695.doc -4the currently selected color. In the preferred embodiment, colors are displayed in accordance with the well-known L*a*b* color space, which is advantageous for use in the preferred embodiment in that the chromaticity components comprise the a*b* portion of the color data and the intensity component comprises the L* component of the color data.
In accordance with the preferred embodiment, the system may be practiced using a conventional general purpose computer such as the one shown in Fig. 5. The computer system 500 consists of the computer 502, a video display 516, and input devices 518, 520. In addition, the system may also have any of a number of other output devices including line printers, laser printers, plotters, and other reproduction devices connected to the computer 502. In addition, the computer system 500 may be connected to one or more other computers using an appropriate communication channel such as a modem communications path, a computer network, or the like.
The computer 502 itself consists of a central processing unit(s) (simply referred to as a processor hereinafter) 504, a memory 506 which may include random access memory (RAM) and read-only memory (ROM), an input/output interface 508, a video interface 510, and one or more storage devices generally represented by block 512 in Fig. 5. The storage device(s) 512 may consist of one of more of the following: a floppy disc drive, a hard disc drive, a magneto-optical disc drive, CD- ROM, or any other of a number of non-volatile storage devices well-known to those skilled in the art. Each of the components 504 to 512 is typically connected to one or more of the other devices via a bus 514 that in turn may consist of data, address, and control buses.
The video interface 510 is connected to the video display 516 and provides video signals from the computer 502 for display on the video display 516. User input to operate the computer 502 may be provided for one or more input devices. A user may use the keyboard 518 and/or a pointing device such as mouse 520 to provide input to the computer. The input devices are further described below in relation to the preferred embodiment.
30 The system according to the preferred embodiment utilises the computer S:system 500 of Fig. 5 to generate and display on the video display 516 colors for selection of a color by a user. Operation of the system is now described with reference :2 to Fig. 3 which illustrates the steps carried out by the preferred embodiment.
*Processing begins at step 300. At step 302 a single input color is obtained by the user selecting a color from the colors displayed on the video display 516. This may be done by operating an input device such as the mouse 520 and selecting a displayed "°*color. In step 304, a plurality of blend areas, or slivers, are generated by first determining an end color for each of the blend areas in accordance with a [N:\LIBoo]00811 :MXL predetermined characteristic. Preferably, the predetermined characteristic is a predefined distance in a three dimensional color space relative to the selected input color. In step 306, a blend is calculated for each sliver using the selected input color and the corresponding end color of the blend determined in step 304. In step 308, the selected color obtained in step 302 is displayed along with the plurality of blend areas arranged in a radial distribution around the selected color on the video display 516.
Processing ends at step 316.
It will therefore be appreciated that the preferred embodiment only requires a single input from the user in step 302, preferably using the pointing device 520 to generate the plurality of blends. In turn, the processing of steps 304 to 308 is automatically carried out by the computer 502 and the resulting selected color and a plurality of blends are displayed on the video display 516. Thus, the system shown in Figs. 3 and 5, in contrast to the prior art, only requires a single operation in order for a user such as a graphical artist to readily select and/or modify a color for display in a computer graphical image. The preferred embodiment will now be further described with reference to a color selection device employed in the preferred embodiment.
Referring now to Figure 1, there is shown in schematic form a color selection device, or color wheel, 1 according to the preferred embodiment. The color selection device comprises a central portion 2, in which is displayed a single, current color taking up an area around the axis of the color wheel 1. More outwardly around the central portion 2 are located a number of exterior portions, or slivers, 3. Each of the slivers 3 comprises a blend of colors from a first color 4, being an equivalent to the currently selected color 2, to a second color at the outer rim 5 of the color wheel. Each blend is designed to blend from a first predefined color to a second predefined color in 25 accordance with the blend's position within the color wheel 1. For example, the blend of the sliver 3 is provided to have a decreasing component within the color space.
Similarly, the sliver 7 comprises a blend of colors from an initial color 4, which is equivalent to the color in the central portion 2, to an outer second color 8 which differs from the color 4 in that it is simply of increased intensity (or L* component) and has the same chromaticity components. Therefore, the blend from the first color 4 to the second color 8 is one of increasing intensity, equivalent to adding an increasing component to the image.
The sliver 10 is also a blend from a first color 4 to a second color 11, where the blend comprises adding intensity and a* and b* components to the blend. Likewise, the remaining slivers within the color wheel 1 comprise blends with changing color 1""components as illustrated.
ooo. *The color selection device 1 may be used by a graphic artist to create or select a color, with the currently selected color being displayed within the central portion 2.
[N:\LIBoo00811 :MXL -6- An interactive pointing device, such as a "mouse" or the like, may be used to select a newly desired color within the color wheel 1 by "clicking" on that color. Upon selection of the newly desired color, the colors of the color wheel device 1 are recalculated with the selected, newly desired color being displayed in the central portion 2. The other colors of the color wheel 1 are recalculated relative to the selected color within the central Portion 2. This process may be iterated until a satisfactory color is located with the finally selected color becoming the current color for the image, drawing objects, or the like.
Preferably, slivers that are diametrically opposed to one another slivers 7 and 14) are also diametrically opposed around the central color in the underlying L*a*b* color space.
Thus, the preferred embodiment provides a system for the selection (or displaying for selection) of a series of color blends. Advantageously, a user only has to select a single color and the blends around the color wheel are calculated using the selected color. The plurality of blends are radially distributed about the selected color and CIELAB space, although other color spaces may be practiced without departing from the scope and spirit of the present invention. Therefore, a series of blends are produced between the selected color and a plurality of colors distributed about the selected color in the color space. Again, this provides a significant advantage over the prior art in that it allows the user to navigate readily and rapidly about the color space by selecting one color at a time.
Figure 2 illustrates a preferred color selection device 1 that is constructed under the Microsoft Windows Computer Interface. The selection tool 20 is referred to as a "Color Inspector". In addition to the color selection device 1, the selection tool 25s includes a number of other color tool selection aids. For example, different ways of representing the color space may be selected via color space input area 21. The color spaces may optionally include Commission Internationale de 1' Eclairage (CIE) L*a*b* (the default), SMPTE RGB, hue saturation value (HSV), and CIE XYZ. Also, provision may be made such that the actual color space coordinates can be alternatively 30 entered in dialogue boxes 22, 23 and 24. A dialogue box 25 may also be utilised to set :°the degree of transparency of the selected color. A palette area 27 is provided for saving a previously created color that may be useful at a future time. A button 28 is :ooo.o provided to extract color from various objects that may have been selected under a S current application program, with the button 29 being provided to export using the color inspector 20 the currently selected color to a selected object of a particular application program.
Another embodiment of the invention is shown in Fig. 4. Optionally, the system may involve two separate processes, one of which involves initialisation of a [N:\LIBoo]00811 :MXL -7palette image and the second involves the display of the color selection device. As shown in Fig. 4, initialization begins in step 400. In step 402, a palette image of color blends is created. The palette image 406 produced in step 402 is provided as an input to step 416, described below. In step 404, the initialization process terminates.
In step 410, a new current color is obtained by the user selecting a color displayed on the video display 516. The new current color will be the start color for a number of blends to be generated. In step 412, the end color for each of the number of blends is calculated. Preferably, the number of blends is fourteen. The blends may be calculated dependent upon the radial distance from the new current color and the radial angle about the new color. In step 414, for each blend, a table of blends colors is calculated from the current color to the corresponding end color. Preferably, the table comprises a lookup table (LUT) stored in the memory 506 of the computer 502.
However, it will be apparent to a person skilled in the art that any of the number of data storage techniques may be utilised beside such lookup tables without departing from the spirit and scope of the present invention. In step 416, the number of blends and the palette image 406 are used to map the palette image using the table of blend colors to obtain a color image. In step 418, the resulting color image is displayed.
Optionally, the color space used in the method of Fig. 4 may be either the CIELAB or RGB color space. It will be apparent to a person skilled in the art that other color spaces may be practiced without departing from the scope and spirit of the present invention.
In view of the foregoing, the actual determination of color within the color selection device 1 can be achieved in a number of different ways that will be readily .".apparent to those skilled the art of computer graphics programming without departing 25 from the scope and spirit of the present invention. In accordance with the preferred embodiment, the accompanying Appendix A contains a computer program written in the C programming language for determining the 10 color within color selection device 1 and is incorporated herein by reference.
The foregoing describes only one embodiment of the present invention.
30 However, modifications and changes obvious to those skilled in the art may be made thereto without departing from the scope and spirit of the invention. For example, a number of modifications may be provided to the various blends. Further, the blends may be represented in other color spaces than those mentioned above, although the L*a*b* color space is preferred. Also, the coarseness of the blend may be a user defined parameter. Further, the actual blend need not be a linear blend and may, for example, be exponential in nature, thereby providing a "fish eye" lens view of the color space.
[N:\LIBoo]00811 :MXL -8- APPENDIX A *The color wheel in the color inspector.
#include 'icihdrs.h" #include 'kit.h" #include 'insputil.h" #define NSTEPS 8 1* Number of steps in blends. See SwatchIndex below. #define DLAB 30 Net delta in Lab of wheel blends. #define SWATCHOUTER RADIUS 50 P~ Fundamental determiner of height of swatch. #define SWATCH GRIDSIZE 8 1* Size of black and white under color boxes. #define SWATCHINNERRADIUS (int)(SWATCHOUTER RADIUS 3.33) #define SWATCHWIDTH (2 SWATCH -OUTER_-RADIUS #define SWATCHHEIGHT (2 SWATCHOUTERRADIUS) #define CLAMP255(f) =255 255 0 0: (unsigned char)(t)) typedef struct RGBO unsigned char C[4];
RGBO;
fee*.
typedef struct SwatchPalette :RGBO spBackground; Assumed first element in code below. RGB spBc*edih[SEP] *Bcgon olih akrudclr RGBO spBackBlend~ight[NSTEPS]; P~ Background to light background color. RGBO sp Wheel[3][3][3][NSTEPSI[2];/* [step] [over black/white] #define spCurrent sp Wheel[l][1][1I[0] Current color over black/white SwatchPalette; typedef unsigned short SwatchIndex; A small integral type to hold SwatchPalette index. SwatchPalette swatchpalette; SwatchIndex swatch-template[SWATCHHEIGHT] [S WATCH WIDTH]; IN:\LIBoIoO81 1 :MXL -9- *Fast integer square root routine.
*Relies on the previous input value being close to this one.
static mnt intsqrt(int x) int sqrtx; static mnt try 0; if (try 1) try (x 1) /2; while (TRUE) if (try 1) return try; sqrtx x try; if (abs(sqrtx try) =1 return sqrtx; 25 try (sqrtx try) 2; a.
a a a. a a a.
a .aa a a a *ia. 'a a. a 'a a a a 30 *Current color in the centre with blends radiating out in 14 directions: +L-a+b ±L+a+b 4 432 +L-a-b 5 1 +L+a-b +b 6 0 +a [N:\LIBoolOO81 1 :MXL 10 -a 7 13 -b -L-a+b 8 12 -L+a+b 9 10 11 -L-a-b -L+a-b -L (bottom half is negation of top half by radial symmetry) static signed char delta[14][3] /La b*I {1,i1} 1), 0-1 1), 0, 0}, too.
0. which sector 30 Return which of the color wheel sectors the given point is in.
Sector are numbered according to the diagram above.
*The given point should be translated so that the centre of *the wheel is 0).
Parameters: ox, oy The coordinates of the point in question. Positive y is up.
*Returns: IN:\LIBoo]0081 1 :MXL 11 *The integer sector number. No error conditions.
static mnt which-sector(int ox, int oy) mt sector; float ta; int i; *1 Tan of 360/14 deg, 2*360/14 and 3*360/14.
static float tantab[3] {0.4815f, 1.2539f, 4.3812f}; if (ox ta =50.Of oy; 1* Something large with sign of y. else ta =(float)oy ox; if (ox 0) if (oy 0) First quadrant. for (i 0; i nels(tantab); i to o 25 if (tantab[i] ta) break; sector Pos 30 else Fourth quadrant. for (i 0; i nels(tantab); i edge' if (tantab[i] -ta) break; sector nels(delta) 1 i if (sector nels(delta)) [N:\LIBoolOO8l 1 :MXL 12sector 0; else if (oy 0) second quadrant for (i 0; i nels(tantab); i+ 0 if (tantab[i] -ta) break; sector nels(delta)/2 1 i; else third quadrant for (i 0; i nels(tantab); i+ if(tantab[i] ta) break; sector nels(delta)/2 i; return sector; initswatch_template Initialise swatch_template to be an array of color indexes which, for any particular filling of the swatch_palette, can be used to determine the RGBO color belonging at any point in the color wheel.
I.e. draw the color wheel using 'generic' colors. Only called once so efficiency is not paramount. Drawing is done by looping through all pixels.
for each pixel which part of the wheel it is in is determined and a color from the palette chosen. The index of this color is stored in the swatch [N:\LIBoo]00811:MXL 13 *template.
*Parameters: *dx, dy Pointers to ilts through which the size of the watch will be stored.
void mnit-swatch-template~int *dx, mnt *dy) PALINDEX return the integer the given field of the palette has when the palette is regarded as an array of RGBO colors. Only used in this function.
#define PALINDEX(field) (&swatchjpalette.field &swatcbjpalette.spBackground) mnt sector; 1 5 float dist; ilt x; ilt y; q 9 S S
S
S S.
S
ilt ilt 20 mnt int ox; I* x, y translated so that center is 0, 0. oy; step; over-white; Else over black. If this assert fails it implies that the SwatchIndex type is too small 25 and should go to a short (it was unsigned char when I wrote this assert).
ASSERT
(Swatchlndex)(sizeof(swatchjpalette) sizeof(RGBO)) sizeof(swatch~palette) sizeof(RGBO), "swatch palette index overflow" ASSERT(dx =NULL dy =NULL, "NULL parameters"); *dx SWATCHWIDTH; *dy SWATCHHEIGHT; [N:\LIBoo]0081 1 :MXL 14 for (y 0; y SWATCHHEIGHT; +y) for (x 0; x SWATCHWIDTH;, +x) over-white SWATCH_GRIDSIZE) SWATCHGRID SIZE)) 1; if (x 2 SWATCHOUTERRADIUS) *To the right of the circle. In the opacity grid.
*NB: This code is not running at the momemt because the swatch *is not that wide. All you need to do is make it wider (say *for it to appear.
ox x-2 SWATCHOUTERRADIUS; oy SWATCHHEIGHT y if (SWATCHWIDTH -x 2 11 y 2) *.swatch-template~y][x] PALINDEX(spBackBlendLight[(NSTEPS 1)I 20 continue; if(ox 11 oy swatch-template[y][x] PALINDEX(sp_ BackBIendDarklNSTEPS 25 continue; swatch templatelyl[xI PALINDEX(spCurrent[over white]); continue; ox x SWATCHOUTERRADIUS; 5oy =y SWATCHOUTERRADIUS; dist (float) intsqrt(ox ox oy oy); if (dist SWATCHINNERRADIUS) 1 *Central (current) color.
swatch_template[y][x] PALINDEX(spCurrent[over-white]); [N:\LIBoo]0081 1 :MXL 15 continue; if (dist SWATCHINNERRADIUS 1.3) Set step to manhattan distance from top left of square bounding inner circle.
step ox SWATCHINERRADIUS oy SWATCHINNERRADIUS; step step NSTEPS (SWATCH INNER_ RADIUS 2); if (step 0) step 0; if (step NSTEPS) swatch-template~y][x] PALINEX(sp_ Wheel[2][1][1][NSTEPS step l][over white]); else if ((step =NSTEPS) =NSTEPS) step NSTEPS 1; swatch-templately][xI PALINDEX(sp Wheel [11][step] [over-white]); continue; 4 .9 4 9 9*e 9 8 9 4* 9 *9 49 *9*9 if (dist SWATCHOUTERRADIUS) *Background color.
swatch-template~y][x] PALINDEX(spBackground); Known to be zero. continue; if (dist SWATCHOUTERRADIUS 3) *Set step to manhattan distance from top left of square bounding *inner circle.
IN\Ll~oolOO81 1 :MXL 16 step ox SWATCHOUTERRADIUS oy SWATCHOUTERRADIUS; step step NSTEPS (SWATCHOUTERRADIUS 2); if (step 0) step 0; if (step NSTEPS) swatch~template~y][x] PALINDEX(spBackBlendDark[NSTEPS step 1l); else if ((step =NSTEPS) NSTEPS) step NSTEPS 1; swatch~template[y] [xl PALINDEX(spBackBendLight[step]); 1 5 continue; In the anulus of blends. Convert dist to 1 for how far along the blend the point is, and then to a step.
dist ((float)dist SWATCHINNERRADIUS) I(SWATCHOUTERRADIUS SWATCHINNIER RADIUS); step (int)(dist NSTEPS); if (step NSTEPS) .25 step =NSTEPS 1; sector which-sector(ox, oy); **if SWATCHGRIDSIZE) (y ISWATCHGRID SIZE)) 1) swatch template[y][x] =PALINDEX(sp Wheel [delta[sector][0] 1] [delta[sector][1] 1] [delta[sector][2] 1] [step][1]); else swatch-templately] [x] [N:\LlBoo]0081 1 :MXL 17 =PALINDEX(sp Wheel [delta[sector][O] 1] [delta[sector][1J 1] [delta[sector][2] 1] [step] #undef PALINDEX *fill_swatchpalette a a a a a ja a 1 5 Fill in all the colors in swatchjpalette based on the central color supplied.
Parameters: cur-labo A pointer to four floats giving the Lab color and opacity *of the central region of the swatch.
void fill-swatchpalette(float const *cur-labo) int Li; mnt ai; mnt bi; int step; int i; float rgb[3]; float xyz[31; float limit-lab[3]; float blend lab float blend; float opacity; float c; DWORD face-color; [N:\LIBoo]0081 1 :MXL 18 static BOOL have~prev; static float prev[4j; face-color GetSysColor(COLORBTNFACE); if haveprev prev[0] curIabo[O] prev[1] curIabo[1I 1 5 prev[2] cur-labo[2] i 9 *9 9 i 9*99 prev[3] ==cur-labo[3] return; 20 prev[0] curIabo[0I; prev[1] cur-labo[1]; prev[2] cur-labo[21; prev[3] cur-laho[3]; swatchpalette.spBackground.C[0] (unsigned char)((face-color OxOOFFOOOO) 16); swatchjalette.spBackground.C[1] (unsigned char)((face-color OxOOOOFFOO) 8); swatchpalette.sp-Background.C[21 (unsigned char)(face-color OxOOOOOOFF); swatchpalette.spBackground.C[3] (unsigned char) 0; if (!havejprev) If we have ever been here before we would have already filled in these invarient colors, so only do it once.
for (i 0; i 3; +i) //swatch~palette.sp-Background.C[iI 192; [N:\LlBoo]0Q81 1 :MXL 19 for (step 0; step NSTEPS; step) swatchpalette.spBackBendLight[step] swatchpalette.sp_Background.C[i] 70 *step
NSTEPS;
swatchpalette.spBackBendDark[step] swatchpalette.sp_Background.C[i] 70 *step
NSTEPS;
swatchjpalette.spBackground.C[3] 0; for (step 0; step NSTEPS; step) {wthpltesak~ndih~tp.[1=25 swatchjalette.spBackBendight[step] 255; haveyprev TRUE; *..XYZ -from_-Lab(xyz, (float *)cur-labo); 'RGB255_fromXYZ(rgb, xyz); 20 opacity cur-labo[31 100.0f, 'for i 0; i 3; +i) limit lab[ cur-o[0I DLAB i 1); 2 or step 3; stp+ai) P; stp limit -lab[ cur abo[+ LA (I ln);+lmtlb[]*bed (N:\LlBoolOO81 1 :MXL blend-lab[1] cur labo[1I (1 blend) limit lab[1] blend; blend-lab[2] cur-labo[2] (1 blend) limit lab[2] blend; XYZ-fromLab(xyz, blend-lab); RGB255_fromXYZ(rgb, xyz); for (i 0; i 3; +i) c 255 (1 opacity) rgbl opacity; swatchjpalette. spWheel[Li] [ai] [bi] [step][I I.C[i] CLAMP255(c); c =rgb[i] opacity; swatchpalette.spVWheel [Li] [ai] [bi] [step] [0I.C[il CLAMP255(c); }wthp~teshe[i a][i swatch-Palette. spWheel[Li [ai] [bi] [step] C[3] 255; blend 1 .Of NSTEPS; q a a a a *paint swatch-to_ dc *Copy the color swatch specified by the swatch-template (set once) and 25 the swatchpalette (set when the selected color changes) to the given dc at the given location. The swatch is fuilly halftoned. The swatch is always SWATCHWIDTH by SWATCHHEIGHT pixels.
*Parameters: *dc TI *tl-x TI *tly Ti he destination DC.
hie destination left edge.
hie destination top edge.
void paint swatch to dc(HDC dc, int tI-x, mnt tly) IN:\LIBoO]0081 1 :MXL 21 unsigned char *swatch-rgbo; RGBO *rgbo; Allocate a full 32 bit RGBO pixel map and copy the template, transliterating through the palette, into it...
swatch_rgbo malloc(sizeof(RGBO) SWATCHWIDTH SWATCHHEIGHT); if (swatch-rgbo ==NULL) return; rgbo (RGBO *)swatchrgbo; for (y 0; y SWATCHHEIGHT; +y) for (x 0; x SWATCHWIDTH; x) *rgbo ((RGBO *)&swatchpalette)[swatch template[y] 20 *Then copy, possibly halftoning, the 32 bit RGBO pixels to the dc.
copy rgbo-to-dc(dc, tl_x, tI_y, SWATCHWIDTH, SWATCHHEIGHT, swatch-rgbo); free(swatch-rgbo); a.
a a a 9 *9 a.
a a.
a a a a a i 9 a.
a 9aqa pick swatch-color *Given a point in the swatch, return its color, based *on the current color.
BOOL
pick swatch color(LPRECT rect, POINT pt, float color[41, float const cur-labo[4]) int x; mnt y; int ox; mnt oy; [N:\LIBoo]OO81 1 :MXL 22 int sector; float dist; float rgb[3]; float xyz[3]; float Iab[3]; x pt. x rect->Ileft; y pt.y rect- >top; if (x 0 y 0) return FALSE; y (SWATCHHEIGHT 1) y if (x SWATCHWIDTH fly =SWATCHHEIGHT) return FALSE; if (x 2 SWATCHOUTERRADIUS) color[0] cur Iabo[0I; color[l] cur Iabo[1]; coor2 color[2] curIabo[2]; 20 return TRUE; ox WTHOUE*AIS oy y* WTHOUE-AI of (ds SWATCH OUTER RADIUS; if (dist SWATCHINNERRADIUS) sctor[0 croot; loti] curIabo[]; it crlb[l+DA et~etr[] it [N:\LlBoo]OO81 1 :MXL 23 lab[1] cur labo[1] (1 dist) (curIabo[1] DLAB delta[sector][1I) dist; Iab[2] cur Iabo[2] (1 dist) (cur_labo[2] DLAB delta[sector] dist; *Clamp the Lab color to RGB ranges.
XYZ-from_Lab(xyz, lab); RGB255_fromXYZ(rgb, xyz); rgb[0] (float)CLAMP255(rgb[0]); rgb[1] (float)CLAMP255(rgb[l]); rgb[2] (float)CLAMP255(rgb[2]); XYZ-fromRGB255(xyz, rgb); Lab-fromXYZ(Iab, xyz); color[O] =lab[O]; color[1] labil]; color[2] Iab[2]; color[3] cur-labo[3]; return TRUE; [N:\LIBoo]OO8l 1 :MXL

Claims (27)

1. A method of displaying color for selection, said method comprising the steps of: displaying a first color in a first predefined area; displaying at least one blend each in a corresponding area, wherein each said at least one blend is different and each color of said at least one blend is within a predetermined distance in color space from said first color; selecting one color of said displayed at least one blend by a single input operation; displaying the selected color in the first predefined area; and displaying at least one further blend each in a corresponding area, wherein each said at least one further blend is different and each color of said at least one further blend is within a predetermined distance in color space from said selected color.
2. The method according to claim 1 wherein each of said second colors is a predetermined distance in a color space from said currently selected color.
3. The method according to claim 1, wherein said first predefined area is oooo located in a central area and each of said blend areas are located around said central area and said at least one of said blend colors in said blend area being located substantially S closest to said central area. 20
4. The method according to claim 3, wherein said blend areas are located radially around said central area.
5. The method according to claim 4, wherein said blend areas are located in radially opposed pairs.
6. The method according to claim 5, wherein said radially opposed pairs comprise blends from a color substantially the same as said currently selected color, to respective second blend colors that are substantially diametrically opposed relative to said currently selected color in a predetermined color space.
7. The method according to claim 6, wherein said color space is the CIE L*a*b* color space.
8. The method according to claim 7, wherein said blends are substantially continuous in the CIE L*a*b* color space.
9. An apparatus for displaying color selectable by a user, said apparatus comprising: means for displaying a first color in a first predefined area; and means for displaying at least one blend each in a corresponding area, wherein each said at least one blend is different and each color of said at least one blend is within a A predetermined distance in color space from said first color; and I:\ELEC\CISRA\OPEN\OPEN2\343695.doc means for selecting one color of said at least one blend by a single input operation; and means for displaying the selected color in the first predefined area; and means for displaying at least one further blend each in a corresponding area, wherein each said at least one further blend is different and each color of said at least one further blend is within a predetermined distance in color space from said selected color.
The apparatus according to claim 9 wherein each of said second colors is a predetermined distance in a color space from said currently selected color.
11. The apparatus according to claim 9, wherein said first predefmned area is located in a central area and each of said blend areas are located around said central area and said at least one of said blend colors in each second predefined area being located substantially closest to said central area.
12. The apparatus according to claim 11, wherein said second predefined areas are located radially around said central area.
13. The apparatus according to claim 12, wherein said second predefined areas are located in radially opposed pairs.
14. The apparatus according to claim 13, wherein said radially opposed pairs comprise blends from a color substantially the same as said currently selected color, to second blend colors that are substantially opposed relative to said currently selected color 20 in a predetermined color space.
The apparatus according to claim 14, wherein said color space is the CIE L*a*b* color space. o
16. The apparatus according to claim 15, wherein said blends are substantially continuous in the CIE L*a*b* color space.
17. A color selection device comprising a color wheel having a radially central portion indicating a currently selected color and a series of radially increasing S blends around said central portion, said radially increasing blends being blends from said currently selected color to predetermined points adjacent said currently selected color in a predetermined color space, wherein said currently selected colors and series of blends are changeable by selecting a color from one of said series of blends by a single input operation.
18. The device according to claim 17, wherein said displayed currently selected color and said displayed series of blends are changeable by selecting a color from one of said series of blends by a single input operation.
19. The device according to claim 17, wherein said color space is CIE L*a*b* color space.
A method of generating colors for selection of a color by a user, said j' 1 \method comprising the steps of: I:\ELEC\CISRA\OPEN\OPEN2O\343695.doc 26 displaying a first blend color in a first area; generating a plurality of color blends, each having said first blend color at one end and a second blend color at an opposite end and blend colors therebetween, wherein said blend colors gradually vary from said first blend color to said second blend color and are each within a predetermined distance in color space from said first blend color; displaying said first color and said plurality of color blends, whereby said color blends are radially configured in corresponding blend areas around said first area dependent on the color blends position in the color space, with each said color blend lo having the first blend color at said one end positioned adjacent to said first area; selecting one of said displayed blend colors by a single input operation; generating a further plurality of color blends, each having said selected blend color at one end of said corresponding blend and a third blend color at an opposite end of said blend, wherein said blend colors gradually vary from said selected blend color to said third blend color and are each within a predetermined distance in color space from said selected blend color; and p:l:u displaying said selected blend color in the first area and said further :"-:.plurality of blends, whereby said blends are radially configured in corresponding blend i areas around said first area dependent on the blends position in the color space, with each 20 blend having the corresponding selected blend color at said one end positioned adjacent to said first area.
21. The method according to claim 20, wherein said step of displaying comprises displaying pairs of opposite second colors so that the opposite second colors are located diametrically opposite to each other with said selected first color located 0. ~25 therebetween.
22. The method according to claim 20, wherein said plurality of second colors is generated dependent upon one of said predetermined characteristics being a radial ".":distance from said selected first color in a color space.
23. The method of claim 20, further comprising the step of: changing said displayed first color and said displayed plurality of color blends by selecting a color from one of said plurality of blends using a single input operation.
24. The method of claim 20, wherein steps and are iteratively carried out to enable a user to modify said first selected color.
25. The method of claim 22, further comprising the step of: once iteration of steps and has been completed, mapping a r 4 palette image using the plurality of blends corresponding to the resultant selected first \color. 1:\ELEC\CISRA\OPENOPEN20\343695.doc 27
26. A method of displaying color for selection substantially as hereinbefore described with reference to Figs. 1 and 2 of the accompanying drawings.
27. A color selection device substantially as hereinbefore described with reference to Figs. 1 and 2 of the accompanying drawings. DATED this eighteenth Day of April 2000 Canon Kabushiki Kaisha Canon Information Systems Research Australia Pty Ltd Patent Attorneys for the Applicants SPRUSON FERGUSON I:\ELEC\CISRA\OPEN\OPEN20\343695.doc
AU55986/96A 1995-06-16 1996-06-14 Color selection tool Ceased AU721222B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU55986/96A AU721222B2 (en) 1995-06-16 1996-06-14 Color selection tool

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPN3601A AUPN360195A0 (en) 1995-06-16 1995-06-16 Colour selection tool
AUPN3601 1995-06-16
AU55986/96A AU721222B2 (en) 1995-06-16 1996-06-14 Color selection tool

Publications (2)

Publication Number Publication Date
AU5598696A AU5598696A (en) 1997-01-02
AU721222B2 true AU721222B2 (en) 2000-06-29

Family

ID=25631065

Family Applications (1)

Application Number Title Priority Date Filing Date
AU55986/96A Ceased AU721222B2 (en) 1995-06-16 1996-06-14 Color selection tool

Country Status (1)

Country Link
AU (1) AU721222B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103407A (en) * 1989-02-21 1992-04-07 Scitex Corporation Apparatus and method for color selection
US5254978A (en) * 1991-03-29 1993-10-19 Xerox Corporation Reference color selection system
US5311212A (en) * 1991-03-29 1994-05-10 Xerox Corporation Functional color selection system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103407A (en) * 1989-02-21 1992-04-07 Scitex Corporation Apparatus and method for color selection
US5254978A (en) * 1991-03-29 1993-10-19 Xerox Corporation Reference color selection system
US5311212A (en) * 1991-03-29 1994-05-10 Xerox Corporation Functional color selection system

Also Published As

Publication number Publication date
AU5598696A (en) 1997-01-02

Similar Documents

Publication Publication Date Title
US6226010B1 (en) Color selection tool
EP0313796B1 (en) Computer display color control and selection system
JP3221458B2 (en) Image editing apparatus and method for image processing system
US5343220A (en) Force monitor of an electronic paint brush apparatus
US9280949B2 (en) Color selection interface
US5105469A (en) Control data array generation apparatus and method
US7397588B2 (en) Generation of hue slice table for gamut mapping
US7809187B2 (en) Color processing method and apparatus
JPH11232443A (en) Method for generating color pallet, picture processing method and picture processor
US6326974B1 (en) Method and apparatus for coloring support
JPH05210719A (en) Image editing device for image processing system
US5254977A (en) Color display
WO1998029859A2 (en) Improved dithering method and apparatus using ramp probability logic
EP0732844B1 (en) Contrast correcting apparatus
US5222206A (en) Image color modification in a computer-aided design system
US7302094B2 (en) Transparency and/or color processing
JP2740409B2 (en) Sharpness processing device
AU721222B2 (en) Color selection tool
US20040145592A1 (en) Apparatus and methods for replacing decorative images with text and/or graphical patterns
US6456295B1 (en) Method for simulating diffusion on a raster
US5151686A (en) Electronic brush generation
US7738139B2 (en) Inking on photographs
Marcu et al. Three-dimensional histogram visualization in different color spaces and applications
US6801214B1 (en) Three-dimensional graphics system reducing color data/bits in drawing operations for faster processing
JPH1188712A (en) Image processing method and image processor

Legal Events

Date Code Title Description
PC1 Assignment before grant (sect. 113)

Owner name: CANON KABUSHIKI KAISHA

Free format text: THE FORMER OWNER WAS: CANON KABUSHIKI KAISHA, CANON INFORMATION SYSTEMS RESEARCH AUSTRALIA PTY LTD

FGA Letters patent sealed or granted (standard patent)