throbber
archive.org
`
`DECLARATION OF NATHANIEL E FRANK-WHITE
`
`1.
`
`I am a Records Request Processor at the Internet Archive. I make this declaration
`of my own personal knowledge.
`
`2. The Internet Archive is a website that provides access to a digital library of Internet
`sites and other cultural artifacts in digital form. Like a paper library, we provide
`free access to researchers, historians, scholars, and the general public. The Internet
`Archive has partnered with and receives support from various institutions,
`including the Library of Congress.
`
`3. The Internet Archive has created a service known as the Wayback Machine. The
`Wayback Machine makes it possible to browse more than 450 billion pages stored
`in the Internet Archive's web archive. Visitors to the Wayback Machine can search
`archives by URL (i.e., a website address). If archived records for a URL are
`available, the visitor will be presented with a display of available dates. The visitor
`may select one of those dates, and begin browsing an archived version of the Web.
`Links on archived files in the Wayback Machine point to other archived files
`(whether HTML pages or other file types), if any are found for the URL indicated
`by a given link. For instance, the Wayback Machine is designed such that when a
`visitor clicks on a hyperlink on an archived page that points to another URL, the
`visitor will be served the archived file found for the hyperlink’s URL with the
`closest available date to the initial file containing the hyperlink.
`
`4. The archived data made viewable and browseable by the Wayback Machine is
`obtained by use of web archiving software that automatically stores copies of files
`available via the Internet, each file preserved as it existed at a particular point in
`time.
`
`5. The Internet Archive assigns a URL on its site to the archived files in the format
`http://web.archive.org/web/[Year in yyyy][Month in mm][Day in dd][Time code in
`hh:mm:ss]/[Archived URL] aka an “extended URL”. Thus, the extended URL
`http://web.archive.org/web/19970126045828/http://www.archive.org/ would be the
`URL for the record of the Internet Archive home page HTML file
`(http://www.archive.org/) archived on January 26, 1997 at 4:58 a.m. and 28
`seconds (1997/01/26 at 04:58:28). The date indicated by an extended URL applies
`to a preserved instance of a file for a given URL, but not necessarily to any other
`files linked therein. Thus, in the case of a page constituted by a primary HTML file
`and other separate files (e.g., files with images, audio, multimedia, design
`elements, or other embedded content) linked within that primary HTML file, the
`primary HTML file and the other files will each have their own respective extended
`URLs and may not have been archived on the same dates.
`
`6. Attached hereto as Exhibit A are true and accurate copies of screenshots of the
`Internet Archive's records of the archived files for the URLs and the dates specified
`in the attached coversheet of each printout.
`
`Lightricks Ltd.
`EX1012
`Page 1 of 699
`
`

`

`archive.org
`
`7. Attached hereto as Exhibit B are true and accurate copies of the Internet Archive's
`records of the archived files for the URLs and the dates specified in the attached
`coversheet of each file.
`
`8.
`
`I declare under penalty of perjury that the foregoing is true and correct.
`
`DATE: ________________________
`
`________________________
`Nathaniel E Frank-White
`
`July 19, 2022
`
`Page 2 of 699
`
`

`

`EXHIBIT A
`EXHIBIT A
`
`Page 3 of 699
`
`Page 3 of 699
`
`

`

`https://web.archive.org/web/20120327064501/http://www.imagemagick.org/Us
`age/
`
`Page 4 of 699
`
`

`

`
`
`
`INTERNET ARcHIve
` |https/www.imagemagick.org/Usage/
`| Go
`
`
`
`WAUsas5 Feb 200
`ptures
`
`
`Ue unahameeeinbettieideal
`
`Examples of ImageMagick Usage
`(Version 6)
`
`This web pages presents a set of examples using ImageMagick from the command line, Howeverthey are also examples of what can be done using
`the ImageMagick Application Programming Interface (API). As such these pages should be the first stop for IM users after reading the terse user
`manuals.
`
`Often the same questions of "Howdo J..." gets asked, over and over again on the network, The examples in these web pages I hope will answer most
`ofthe common‘how-to' questionsthat arise.
`
`IM v6.7.0-10 2011-11-03
`DownlondPage. FedorsRPM,
`Lim SEPM.
`BsiaRelease
`Mirrors of IM Examples...
`c act
`Otherrelated sites...
`Erod'sImpeeMazickScrints
`
`
`
`
`
`,.
`
`
`
`
`
`ieeee
`
`
`“| Anthony's Graphics Lab
`| Main ImageMagick Website
`
`
`
`Basic Techniques
`Practical Examples
`,.| Canvas Creation
`».| Basic Usage
`Basic command and image handling
`Creating canvas and backgroundiniages
`,. Color Basies and
`Channels
`».| lmage File Handling
`LowLevel Color Handling
`Reading and writing images
`»| Color Modifications
`_
`»;Common
`ImageFormats
`General Color Changes
`Handling GIF, JPEG, and PNG images
`». lext to Image Handling
`»| Masking and Background Removal
`Alpha Channel, and Transparency handling
`~
`Converting text into images
`
`»|Color zation and Dithering
`
`> Compound Font Effects
`Font drawing styles and techniques
`' Reducing the number ofcolors
`,./ Cutting and Bordering
`»-| AnnotatingImages
`Labeling and overlaying images
`' Slicing, Dicing, Framing, Trimming
`
`»|Lhumbnails and Framing »|Resizing or Scaling
`Enlarging and Shrinking Images
`Small reference images oflarge photos
`,./ Photo Handling
`».| Compositing Images
`Modifying photographs
`Overlaying and Merging Two Images
`». | Lens Correction
`,.| Drawing on Images
`Correcting Photo Distortions
`Vector graphics, MVG and SVG images
`
`» | Montage.ArraysofImages »|Sumple Image Warping
`Image Indexes and Arrays
`Flipping, Rotating, Twisting
`
`»| Layers of Multiple Images »|Distorting Images
`Carnival House of Mirrors
`Combining multiple images together
`»| Image Transformations
`».| Animation Basics
`~
`Drastic changes to the look of an image
`Creation and study of animations
`
`
`» Animation Optimizations »|Image Mapping Effects
`Making GIF animations smaller
`~
`Lens, Glass and Ripple Effects
`,. Animation Modifications
`» | Blurring andSharpeningImages
`Changing and merging animations
`Blurring, Sharpening and Shadows
`» | Mideo Handling
`» | Morphology ofShapes
`Handling reallife video images
`~ Using Pixel Neighbourhoods
`ImageComparing
`,. Convolution of Images
`Comparing two or more images
`Weighted Averaged Neighbourhoods
`»- | Advanced Techniques
`».| Eourier Transforms
`Complex manipulations of images
`Modifing Images in the Frequency Domain
`».| Anti-Aliasing
`»| Backeround Examples
`Examples of creating randombackgrounds
`~~ Anti-aliasing effects and problems
`». | Miscellaneous
`Miscellaneous Examples
`
`,.| Repositories Links
`Links to other IM seripts and info.
`,» APIs, Scripting, Building
`~ Usage in other environments
`»|Reference Index
`' Quick index for specific options.
`» | Usage under Windows
`IM on Windows PC
`».|Support Scripts
`~ Shell Scripts used by examples.
`“ | Development and Bugs
`Development Proposals and Bugs, New and Old
`
`Symbols for Added Notes within example pages...
`B For More Advanced Users
`&
`Hint. Tip or Extra Info
`Test Image Storage Directories... Small Images (image display),
`Photographs (fancy index)
`
`A Older Version Warnings
`
`ImageMagick Examples - Introductory Notes
`
`Whatis ImageMagick? A no holds barred summary
`
`ImageMagick is designed for batch processing of images. Thatis, allow you to create more complex methods and techniques in a script (shell, dos. perl, PHP, etc) so that you can then
`apply the image processing operations to many images. or as part of a sub-system of someother tool, such as a web application, video processing tool, panorama generator, and so on.
`Iris not a GUI image editor.
`
`ImageMagick is first ofall an image-to-image converter. It was what it was originally designed to do. That 1s it will convert an image in just about any image format (tell us if 1 can't)
`to any other image format.
`
`But it is also a library ofImage Processing Algorithms. These can be access via the commandline, and shell/dosscripts, which is what these example pages are specifically about, or
`via a large numberof programming languages. such as C, C++, Perl, Ruby. PHP,etc, etc, etc. (see ImageMagick API's)
`
`Speed was however never a major feature, more the quality of its image results. That is not to say that it can't transform images in a reasonable time, but it is not blindingly fast.
`Reeanees afthic it ean he clawfar came arareaceina aneratinne eenecially in ite attarmnte ta camnrece imacee inte mace Farmate that have limited eanahility
`Page 5 of 699
`
`Page 5 of 699
`
`

`

`SUUR LR RU Ge BPR RdRG NTN ARA NRA NY RRGN ARNNe RAMU MUNN LUMA Ne ROAR NREZe
`
`ImageMagick however concernsitself mainly with images in the form ofa ‘raster’ or "rectangular array ofpixels". It will handle ‘vector’ image formats like Postscript and PDF, but at
`the cost of converting those images into a 'raster’, and generating a vector image wrapper arounda raster image. As a result vector images are often processed badly in the default case.
`but specific options can be used to improvethis situation. See. A word about Vector Image formats,
`
`About these Examples of ImageMagick Usage
`
`These pages were developed fromand are a continuation of my Collection of ImageMagick Hints and Tips pageI first started in 1993 (and placed on the new fangled world-wide-web
`making its appearance around the same time). Many aspects of IM and notes not included in these pagesare still present in that document. However while these pages were designed
`for you to look at, the hints and tip document was only for my ownedification, so may be vague or chaotic in places. You are welcometo look atit, learn and make commentson it.
`
`Other examples were grabbed or developed from answers to users on the IM Forumsor contributed to me as solutions to various problems.
`
`[ look forward to suggestions. and email from other IM users, with such email generally resulting in improvements and expansions to these example pages.
`
`Command Line Environments
`
`All examples are written for use on UNIX, and specifically Linux systems, using BASH scripting. As a consequence some examples usea shell 'for-do! loop, and most use a backslash
`'\' at the end of a line to continue the command onto the next line. The longer commandsare broken into separate lines to try to further highlight the steps being applied in that
`command.
`
`However you can still use these examples from PC Windows Batch Scripts with some changes to the handling of certain characters. PHP Scripts also need to make someslight
`modifications to examples, to run the commanddirectly from PHP ‘system’calls.
`
`See Windows Usage and API's and Scripting for more information on using the the ImageMagick commandsin these alternative environments. Contributions and test examples
`welcome.
`
`PerlMagick, or other APIs
`
`The examples should also be able to be converted to run from all application interfaces, such as Perl, C, C++, Ruby, PHP MagickWand, and so on. I recommendtrying things out on
`the commandlinefirst, until youget right, then convert the resulting operations to the specific API you are using.
`
`The commandline really only deals with a single image sequence at any one time, though this has improved enormously with IM version 6. But APIs do not have this problem.
`allowing you to manipulate multiple image sequences separately or together to form more complexscripts.
`
`This ability will also simply the examples and remove the need to save images as temporary files, as many of the command line examples require. As such with an API only
`permanent and semi-permanent images need saved to disk.
`
`Basically, let the example pages give youastart, to see just what 1s possible with ImageMagick, develop just what you want to do, before encoding the results in your own scripts and
`API code, where it is harder to make extensive changes.
`
`Lalso recommend you comment your API code, heavily, adding the commandline equivalents to what youare trying to do, if possible. This lets you check and compare results using
`the command lineletting you debug problems that you may later come across, especially as improvements are made to image processing in the Core ImageMagick Library.
`
`Downloading Input Imagesand Results
`
`As muchas possible, I try to use an IM built-in image (such as "logo:", or "rose:") as an input image to IM example commands.or generate an input images from IM commands. I
`also often re-use the output of previous commands,in the later examples. This means you usually do not need to download ‘test’ images to try out the examples yourself with your
`own Imagemagick.
`
`However such generated or built-in images are not always convenient, so when I do use an external image. I tend to re-use that input image, or the results of previous examples, over
`and over,for all the examples ofthat section.
`
`That said, the original input imageis often only displayed in cases where the image changes dramatically, or in very minor ways by the example command.
`
`In any case just about all the IM example commandsgiven are also executed in the same web directory in which they appear, to produce the results also shown. That ts the command
`yousee is the commandthat was actually used to generate the image.
`
`As the commandis executed in the same directory you can edit the pages URL link in your browser to download or view the input image(s) used by the command shown. An extra
`
`
`copy of external source images has also been placed in the "images" and "img_photos" sub-directories. See also the example of a Fancy Photo Index of those images.
`
`If text output or image informationis produced by an example,it is saved to a text file, and an image generated fordirect display on the web page. Selecting the text output image will
`Jump you to a copy of the actual text output by the command.
`
`In all these examples, clicking on the image results should let you download the actual output resulting from example IM conimands. Be warned however that notall browsers will
`understandall image formats.
`
`External Image Sources
`
`By the way, most ofthe source images used come from Anthony's Icon Library. especially the backgroundtiles, large clip-art, and dragons sectionsof the library. (I like dragons!)
`
`This library actually predates the WWW.I created it in 1991 due to the lack of good clean iconic images for use on the X window system. The advent of the WWW hasof course
`changed this, but my originallibrary still exists and remains available as a source of image. though is not actively growing.
`
`Larger and some specific images are often contributed to IM examples, by the author ofthe example (whoislisted at the bottom ofthose contributed sections).
`
`If you are looking for a specific image | recommend using Google Image Search to find something appropriate. You can of course convert or resize such images using IM for your
`own purposes, though I would be careful about copyrightif you plan to use such images commercially.
`
`PNG Images on Web Pages
`
`In many examples. | use a PNG image format. such as that shownto the right of this text. This image format allows you to save image with semi-transparent
`pixels, a feature few other image formats provide. It is also a very well understood image format and as such usable by most image programs and web
`
`browserstoday.
`
`PPSe Seer ee se AS Aes Terese cody ST Preis Deen Ss permeiOS er gegen op ie meee gre ag a ew Pi ree al aig gee apge ee el
`
`gu cee es
`
`ee-
`Page 6 of 699
`
`Page 6 of 699
`
`

`

`/ Sl
`PFiNit UNAS COITECUY (IOSL MOLIDLY IWLICDOSOIL LETHeL DAPLOPEr VO, WOULo Vv
`LIAL Satu, SUIWED DOUWSEers TOWEVEr WO IW) UISpldy WEUSparent
`does). Because ofthis I generally prefer to use JPEG and GIF image formats. and only use PNG when generating images with semi-transparent pixels, or
`requiring a exact colors for later examples.
`
`
`To allow IE v6 browsers to display PNG images.I use a special ‘style sheet’ using a complex java seript. For information on this. see PNG with transparency for IE, thoughthis is
`technically not a ImageMagick problem.
`
`Displaying Images on yourScreen
`
`
`
`
`
`Display problems also occur when displaying images on screen, as such I recommend using a command like the following to tile a ‘checkerboard’ pattern [%
`
`underneath the image to highlight any transparent and semi-transparentpixels in the results.
`composite -compose Dst_Over -tile pattern:checkerboard image.png x:
`
`The source image used in the results aboveis a special PNG format test image, which was generated using the "generate test" shell script. Normally the command would output the
`results to your display, and not onto the not in a web pagelike this.
`
`If you look carefully you can see the checkerboard pattern though the semi-transparent colors ofthe resulting image. However the actual image displayed ts fully opaque. so should
`work on all displays, web browsers, and image viewers.
`
`As of IM v6.0.2, the "display" program performs something like this automatically, though does not seem to handle images using color tables (GIF) in this way. Also see Show
`Output Display for another way of displayingresults directly on the screen without saving them.
`
`Font Usage
`
`The fonts I use in these examples are froma small collection true type fonts I have found over the years, and saved for my own use. Someof these are copyright, so I cannot publish
`themonline.
`
`You are however welcometo substitute other fonts that you have available, as the examples should work (with some image size changes) with any appropriate font you have available
`on your system, such as the Microsoft "Arial" font, or even "Times-BoldlItalic", one of which should work on most systems.
`
`To see what fonts are currently available on your version of IM, run the following command...
`
`# for IM older than v6.3.5-7
`convert -list type
`
`convert -list font # for newer versions
`
`WARNING: If the font requested is not found, ImageMagick will silently substitute a default font. which is usually very plain looking (Arial or Times). Sotest the font before hand.
`to makesure thatit is the one you want, and notthe default.
`
`On my Linux system. I use a special Perl script "imagicktypegen" to generate a "type.xm1" fontlisting file, and is saved in the ".magick" sub-directory of your home. This script
`locates (run "updatedb’ first if you just added new fonts), and describes all the fonts I have available on my system. This means I only need to specify the name of the font I wantto
`use and notthe full path to a specific fontfile.
`
`This lets me...
`
`# Instead of using the command...
`convert -font $HOME/lib/font/truetype/favorite/candice.ttf \
`-pointsize 72 label:Anthony anthony.gif
`
`convert -font Candice -pointsize 72 label:Anthony anthony.gif
`
`# I can use the simpler font label...
`
`A Before IMv6_1_2-3, the "typext"file was named "type.agk". Ifyou are using a earlier version ofIMplease nate this change.
`The fonts used in these examples are listed in a Montage of Example Fonts Example. My personal favoriate is Candice, so it gets used quite a bit.
`
`
`
`
`
`Ls ffvoualso like the ‘candice’font, or anyofthe otherfonts I use, grab itfrom Free Fonts orJOO]Fontscom.
`
`Example Page Updates
`
`These example pages are in an on going cycle of improvement. Generally I find I stop adding to pages for long periods of time when my interests become focused on other things.
`
`Also all examples are re-built using the latest beta release for IM, allowing me to see changes and bugs that may appear in each version of IM beforeit is generally released. However
`the example images shownis what the given IM command produces on my system. If you get something different your IM ts probably a mucholder version, with old bugs, or your
`IM is incorrectly installed.
`
`Note that emailingme, or discussing some aspect of ImageMagick on the IM Mailing List, or IM User Forum will generally result in whole sections being added or new examples to
`existing sections created. The more discussion, the better the examples become.
`
`If you are doing anything interesting with IM, please share, and allow me provide examples of your technique to the rest of the IM community. Some of the biggest advances in IM
`usage have come from users just like you.
`
`Special Thanks
`
`A special thinks goes to Cristy. who hastirelessly spent months. upgrading, bug fixing. and putting up with my off the wall suggestions. Especially with regards to my major
`suggestions for the commandline processing. parenthesis, image sequence operators, and GIF animation processing.
`
`He has done a marvelous job to make version 6 the best and most advanced commandline image processing program available, and while most users will not show that appreciation,
`I certainly do appreciate the effort he has put into IM.
`
`[also like to thank Gabe Schaffer, who has been most helpful in discussions involving, the JPEG format and library, affine matrix operators, and the Magick Vector Graphics in
`general.
`
`And to Glenn Randers-Pehrson, who looks after the PNG coder module, and seemsto like to be involved with Color Quantization and Dithering. He was the first to add ‘halftone’
`dithering to IM, before I revised the whole section in the IM Core, and later added newdithers to the ordered dither configuration file.
`
`Page 7 of 699
`
`Page 7 of 699
`
`

`

`
`
`Page 8 of 699
`
`Page 8 of 699
`
`

`

`https://web.archive.org/web/20120329131929/http://www.imagemagick.org/Us
`age/distorts/
`
`
`
`
`
`Page 9 of 699
`
`

`

`ImageMagick v6 Examples--
`Distorting Images
`
`Index
`“ImageMagick Examples Preface and Index
`®| General Distortion Techniques
`
`Pixel Mapping
`ct
`Forward ©
`« Reversed Pixel Mapping
`© Interpolated Pixel Lookup
`* Super-Sampling,Improved Results
`« Area Resampling, the next step
`
`> Affine (Three Point) Distortion Methods
`
`« Affine Distortion
`* Affine Projection Distortion
`* Affine Distortion Examples
`
`© Distort Options, Controls, and Settings
`Best Fit (+distort) Option
`Image Filters and Color Determination
`MiewingDistantHorizons
`
`3D Boxes. usingPerspective Laverne
`Virtual Pixels and Tiling
`Missed and Invalid Pixels
`Resampling and Filters
`Interpolated Color Lookup
`
`There are only a few basic ways an image processor candistort images.
`
`Affine Tiling
`2DCubes,using AffineLayerine
`3D Shadows, using Affine Shears
`3D Shadows, using Perspective
`
`
`« Resize Distortion
`
`*AffineMatrixTransforms(separate sub-directory)
`
`| Generalized Distortion Operator
`
`| Four Point Distortion Methods
`
`Perspective Distortion
`
`Verbose Distortion Summary
`Viewport, Where Distort Looks
`
`Centered Square Crop
`
`Perspective Projection Distortion
`Perspective Internals
`Bilinear Distortion Metjods
`BilinearForward
`BilinearReverse
`Bilinear Tiling
`Bilinear
`Internals
`
`Output Scaling. and Super-Sampling
`*|Polynomial Distortion
`| Cireular and Radial Distortion Methods
`
`| Introduction to Distortion Methods
`
`* Are Distortion (imagesin circular arcs)
`
`AreintoFullCircle Rings
`
`* SRT Distortion(seale,rotate,translate)
`Are Distortion Examples
`Are. Center Point Placement
`
`© Methods of RotatingImages
`* Distortions Using Control Points
`* Image Coordinates vs Pixel Coordinates
`« Control Points using Percent Escapes
`© Control Point Least Squares Fit
`* Control Point Files
`
`Polar Distortion (full circle distort)

`* DePolar Distortion(polar to cartesian)
`¢ Depolar-Polar_ Cycle Technique
`
`Depolar-Polar Problem
`Polar Rotation
`olalpor
`Radial Streaks
`
`* Barrel Distortion (lens correction)
`« Barrellnverse Distortion (alternative barrel)
`
`©|Projective Distortions
`
`* Cylinder? Plane
`* Plane 2 Cylinder
`
`| Multi-Point and Freeform Distorts
`
`* Shepards Distortion(taffypulling!)
`
`Shepards and Image Rotations
`Shepards Summary
`
`Having looked at the simple set of built-in image wrapping and distortion operators IM has providedsince its early days, here we go deeper and lookat the internal mechanics and
`more complex mathematical distortions of images.
`
`From this deeper understanding. we then looks at a more generalize image distortion operator. This includes distortions, from complex rotations, scaling and shearing, to perspective
`or 3D distortions, to warping to and fromcircular ares, camera lens distortions, and finally to more general morph-like distortions.
`
`
`General Distortion Techniques
`
`Nowthat we have been introduce to the simple distortion operators that IM provides,lets take a step back and look at the nitty-gritty, and see how image distortions actually work,
`and how you can improve the way you use them.
`
`Later we'll go forward to much more complex ways of distortion images. including methods that are not directly built into ImageMagick.
`
`Page 10 of 699
`
`

`

`The Simple Distortion operators for example are achieved by Pixel Swapping. Thatis, individual pixels or even whole rows and columnsofpixels are just swapped aroundto Flip,
`Roll, Transpose and even Rectangular Rotates of images. No color changes are made, and the numberof pixels remains the same.
`
`The next method ofdistorting images is by Shifting or Shearing the columns and rowsofpixels either horizontally or vertically, such as what IM does with Image Shearing and the
`Wave Distortion above. The shears in turn providing one method to RotateImages by any given angle, in a manner that should be quite fast.
`
`Howeverpixel shifting methods are limited to those basic distortions. It can not scale an image to a different size for example. You also have very little control over the handling of
`areas in the resulting image that was not covered by the original source image. In the above mentioned functions IM just sets the missing areas to the current backgroundcolor.
`
`To be able to distort images in a much more general way you need to use a more general distortion technique known as Reverse Pixel Mapping. For example this method is used by
`the more complex Circular Distortions such as Imploding and Swirling images.
`
`Forward or Direct Pixel Mapping
`
`Thefirst thing people think of whenattempting to distort an image is to just take each pixel in the source image and moveit directly to its newlocation inthe destination image.
`
`In fact this is sort of what actually happens for SimpleDistorts, Image Cropping and even for distorting Vector Images. Each pixel (or coordinate) is is just moved to its new position
`in the final image.
`
`Unfortunately this has problems when you try to do this for anything but a simple distortion. For example here I take a Enumerated Pixel list of a small image, and just change the
`location of each pixel. so as to rotate it to its new location.
`
`koala_rotated_direct.gif
`
`# Rotate by 17 degrees -- pet the Sine and Cosine of this angle
`sin= convert xc:
`-format "%[fx:sin( 17 *pi/18@)]" info:”
`cos="convert xc:
`-format "X[fx:cos( 17 *pi/180)]" info:”
`
`# For each Pixel, rotate that pixels coordinates
`convert koala.gif
`txt:- |
`sed ‘2,$ s/,/:/'
`|\
`gawk -F:
`'NR == 1 { print }
`y = $2-32;
`NR >a {
`x = $1-32;
`nx = int( c*x - s*y + 32 );
`hy = int( s*x + c*y + 32 );
`printf( "Xd,%d: %s\n", nx, ny, $3 );
`}' s=$sin c=$cos -
`|\
`convert -background black txt:-
`
`Thedistortion is a simple rotation ofjust 17 degrees, but the results are not very niceatall.
`
`First of all each new pixel location is a floating point value. but pixels can only exist in an integer grid, so the above simply junks the non-integer fraction of the results.
`
`The second problemis that the result is full of holes where no pixel landed. In fact for every hole in the image, you will probably also find two pixels landed on the same coordinate.
`That is you have a third problem of overlapping pixels, which pixel value should you use?
`
`In other words the resulting image is incomplete, where each pixel in the destination could have multiple results or no results at all. This is a serious problem, and one that can not be
`easily solved when forward mappingpixels from the source image directly to the destination image.
`
`Thatis not to say that it can not work, and many research papers using a technique known as'splatting’. Basically they take each inputpixel, transform its location, and then draw it
`with appropriate spreading and mixing ofpixel colors in the new location. This technique is especially useful when dealing with 3-D digitization. of real world objects where none of
`the point locations have structure to them. That is the input is just a ‘cloud! of individual points on a 3-D surface. Splatting however is beyond IM's scope ofhandling 2-D raster
`images.
`
`Reverse Pixel Mapping
`
`Rather than trying to map pixels into the tinal image, you can map the coordinate of each pixel in the destination image to the corresponding location in the source image, and from
`the source image lookup the color that pixel should contain. This is known as a Reverse Pixel Mapping and is what just about every image distortion programdoes.
`
`As each and every destination image pixel is processed, we can be sure that every pixel in the destination gets one and only one color. So as long as we can figure out the ‘source’
`location for each destination pixel, we can distort a source image to the destination image using any mathematical formula you can imagine.
`
` (floating point)
`
`(integer position)
`Destination Image
`
`Source Image
`
`In Summary, a distortion mapping (reverse mapping) does the following.
`For each pixel (I,J) in the destination or output image
`Map the I,J pixel position to a X,¥ pixel position in the original image
`Look up the Color of the original image at position X,Y
`Using color interpolation, work out the appropriate color.
`Or the virtual-pixel setting, if it misses the actual source image.
`Set the destination images color for pixel I,J
`
`Note that I used the variable names 'I,J' and 'x,Y' in the above as these variables map into the variables name that you would typically use in the FX DIY Operator.
`
`For example here I simulate the same |7 degree rotation I attempted before. but this time use the "-£x" operator to look up
`the nearest
`pixel to that location in the source image.
`
`# Rotate by 17 degrees -- get the Sine and Cosine of this angle
`sin=convert xc:
`-format "%[fx:sin( 17 *pi/18@)]" info:”
`cos= convert xc:
`-format "%[fx:cos( 17 *pi/18@)]" info:
`cx=37; cy=37;
`# center of rotation
`
`\
`koala.gif
`convert -size 75x75 xc:
`-interpolate NearestNeighbor \
`-virtual-pixel Black
`jdy= 4)
`- Sev
`=fk “25 =i —Sexs
`xx = $cos*ii +$sin*jj + $cx;
`
`Page 11 of 699
`
`Page 11 of 699
`
`

`

`yy = =PSLNTLD +pCOS™]7 + PCy;
`vep{xx,yy}" \
`koala_rotated_fx.gif
`
`You can get more detail about the above DIY examplein the sub-section on DIY Affine Distortion Mapping.
`
`As you can see we no longer have ‘holes’ in our image as a color is looked up for each and every pixel in the destination, It still does not look very good, but that is a matter of
`adjusting exactly what color should be placed into each pixel.
`
`That is Reverse Pixel Mapping doesnot generate either holes, or overlapping pixels. Each pixel has a properly defined color producing a complete image.
`
`Thedistinction between forward and reverse mapping is important as most mathematical transformations are defined as forward mappings, mapping a single source (X.Y) position to
`a destination (1.J) position. And indeed a ‘forward mapping’ works well for vector graphics, and drawing lines where you can just map the ends of the line and draw it. This is
`especially true for any linear transformation, such as rotations, where lines remain straight. It is in fact whatis done for all vector based languages such as such as postscript and SVG.
`
`But for a general raster image, you mustuse a ‘reverse mapping’ to distort the image. so that you can be certain that you ‘fill in’ all the pixels of the destination image.
`
`For example if you look the mathematics that was used to map the coordinates in the above two cases, you will find they look almost exactly the same. The reverse mapping of a
`‘rotate’ is another‘rotate’, just in the opposite direction. If you look closely you will see that the 'sin' constant is negated to the forward mapped version,and that is enough to reverse
`the direction ofrotation. This detail is important andcritical.
`
`The problem is not all forward mapping transforms, work well as a reversed transform. Some forward mappingsin fact have no simple direct solutions.
`
`On the other hand some image transformations work very well when directly used as a reverse mapping, where they would fail badly if used on forward mapped vector images.
`
`As an FYI here is the faster equivalent to the above using a General Distortion, SRT method that does the samerotation of the image.
`
`Again the color lookupis restricted to just the color of the closest pixel to the mapped position by using ‘point’ interpolation. This means that no new colors are added to the image
`(other than when we ‘missed! the source image), but you also get severealiasing effects.
`
`-interpolate NearestNeighbor \
`-virtual-pixel Bla

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket