Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1997-10-06
2001-08-07
Banankhah, Majid A. (Department: 2151)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
Reexamination Certificate
active
06272558
ABSTRACT:
BACKGROUND OF THE INVENTION
This application is being filed with a microfiche appendix of computer program listings consisting of two (2) fiches having one hundred eleven (111) frames.
A portion of the disclosure of this patent document conditions material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
The present invention concerns an application programming interface usable by a software developer when writing an application for accessing and manipulating image files stored in the FlashPix file format.
DESCRIPTION OF THE RELATED ART
FlashPix refers to a file format and specification originally developed by Eastman Kodak, Hewlett-Packard, Live Picture, and Microsoft FlashPix is intended to speed up retrieval, manipulation, and output of digital color images. The FlashPix file format includes new image formatting techniques as well as desirable features of existing image file formats.
For example, FlashPix was defined to provide a universal file format, equally usable among software applications, peripherals, and on-line services. In addition, a FlashPix image file stores original image data separately from image editing data (“viewing parameters”) and image annotations, such as descriptions or sound clips. Moreover, a FlashPix file includes several copies of an original image, each copy stored at a different resolution.
The above features interoperate to increase image processing speed and enhance image quality. For example, consider a case where an image processing application must display an image on a computer screen. Even though the image file might have been a file originally stored at 300 dots per inch (dpi), the application retrieves a copy of the image stored in the FlashPix file at a resolution more closely approximating screen resolution (72 dpi). Of course, retrieving a 72 dpi image is faster than retrieving a 300 dpi image, especially where the image file must be retrieved over a slow device (such as retrieval over a modem from the internet).
After the image processing application alters the 72 dpi file, the altered file is saved. According to the FlashPix specification, the original image file and the lower-resolution copies are not overwritten. Rather, viewing parameters are altered to reflect the alterations made to the 72 dpi file. Upon issuing a print command, the altered viewing parameters are used to alter the 300 dpi original image data, which is then output to a printer.
Eastman Kodak provides a Software Developer's Kit (SDK) to assist application developers in writing new applications that manipulate FlashPix-formatted image files. In particular, the SDK provides code implementing an application programming interface (API) of FlashPix-specific functions callable by a client application.
Unfortunately, the API provided by the Kodak SDK (“the FlashPix API”) requires a client image processing application to make numerous complex function calls and to execute many complex algorithms in order to retrieve, manipulate and output a FlashPix image file.
For example, simply reading a FlashPix file requires several calls to FlashPix API functions. Specifically, a client application must call one function to create a “world”, another function to place an image in the world, another function to define a region of interest within the placed image, and yet another function to extract data located within the region of interest.
In addition, a developer must have a sophisticated knowledge of color processing and image processing techniques in order to properly use the FlashPix API functions dedicated to color and image processing. For example, in order to increase the red content of an image, a developer must design a client application to create and pass a four-by-four color twist matrix structure to the FlashPix “FPX_SetImageColorTwistMatrix” function. Similarly, in order to rotate an image by a specified number of degrees, a developer must design a client application to create an appropriate four-by-four affine transformation matrix to be used in conjunction with the FlashPix “FPX_SetImageAffine Matrix” function.
Moreover, software developers have expressed general disappointment regarding the lack of features provided by the FlashPix API.
Due to the foregoing, it is difficult for a client application to manage FlashPix files using the FlashPix API.
Accordingly, there is a need for a single API to a client application, by which the client application may easily retrieve, manipulate, and output FlashPix-formatted files.
SUMMARY OF THE INVENTION
The present invention addresses the foregoing by providing an application programming interface using which a client application can easily manipulate FlashPix-formatted image files. Such an API shields a developer of client applications from the complexities of the FlashPix API while also providing functionality not provided by the FlashPix API. Moreover, the implementation of an API according to the present invention can be altered in response to changes to the FlashPix API. Accordingly, client applications written to an API according to the present invention need not be updated in response to changes in the FlashPix API.
According to the invention, a client application is provided with an API for manipulating FlashPix-formatted files. The API includes system management functions to initialize the client application, to indicate that API functions will be called, and to indicate that no further API functions will be called. The API also includes file management functions to create a new FlashPix storage, to open the FlashPix storage, to read FlashPix image data from the storage, to write FlashPix image data to the storage, and to close the storage. Finally, the API includes image processing functions to adjust color, to adjust contrast, to perform filtering operations, to rotate, flip and shear, to define a rectangle of interest, and to define aspect ratio. One file management function to read FlashPix image data from the storage includes a function to create a world, to place an image in the world, to define a region of interest within the placed image, and to extract data located within the region of interest.
By virtue of the foregoing, a simple and consistent application programming interface is provided, by which a client application can read data from a FlashPix file using a single function cell. As such, the present invention increases the productivity of developers of client applications using FlashPix files.
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiments thereof in connection with the attached drawings.
REFERENCES:
patent: 4833625 (1989-05-01), Fisher et al.
patent: 5218455 (1993-06-01), Kristy
patent: 5319471 (1994-06-01), Takei et al.
patent: 5493408 (1996-02-01), Kurogane et al.
patent: 5666215 (1997-09-01), Fredlund et al.
patent: 5760916 (1998-06-01), Dellert et al.
patent: 5838906 (1998-11-01), Doyle et al.
patent: 5926636 (1999-07-01), Lam et al.
patent: 6018743 (2000-01-01), Xu
Enrich Gamma et al., Design Pattern—Elements of Reusable Object-Oriented Software, 1995, pp. 185-193.
FlashPix Format Specification Version 1.0.1, Eastman Kodak Company, Jul. 10, 1997, (154 pages).
FlashPix Reference Implementation Programmer's Guide Version 1.0, Eastman Kodak Company, Jan. 29, 1997, (272 pages).
Hui Jonathan
Yeo Chris See Liang
Zheng Joe
Banankhah Majid A.
Canon Kabushiki Kaisha
Fitzpatrick ,Cella, Harper & Scinto
Liao Sue
LandOfFree
Application programming interface for manipulating flashpix... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Application programming interface for manipulating flashpix..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Application programming interface for manipulating flashpix... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2447734