US20030193497A1

Converting bitmap objects to polygons

Claim Score by NHIP

Read claim 18, the broadest

Abstract

Methods, and apparatus implementing the methods, that provide useful resolution-independent representations of the perimeter of a bitmap object. The methods find the boundary pixels in a bitmap and identify each boundary pixel edge that actually contributes to the object perimeter. The methods distinguish objects that appear to share a common edge because they share boundary pixels, when in fact the objects are separated by a pixel width. The polygon can be encoded in a digital, compact, compressible format, and can be used to define traps in a vector-based trapping environment. A finite state machine for generating the polygon is disclosed. A bitmap object is encode by calculating a sequence of direction codes based on tracing around the bitmap object along the boundary, where each direction code represents a direction from an eight-connected pixel to an adjacent eight-connected pixel. In another aspect, the invention provides a technique for trapping mixed bitmap and vector objects in a vector-based trapping process. The bitmap objects on a page are converted to perimeter polygons, the polygons are planarized with the vector objects of the page, and the resulting planar structures are trapped.

US20030193497A1, drawing sheet 1
Sheet 1 of 5

Term

Term ended

Projected expiry passed 15 April 2023, 3.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

22 claims: 10 independent, 12 dependent

  1. 1
    A method for generating a polygon from a bitmap object defined by object pixels, each of the object pixels having edges shared with adjacent pixels, the method comprising:identifying all of the perimeter edges a perimeter edge being an edge that separates an object pixel from a non-object pixel;and accumulating the identified perimeter edges to define a polygon.
  2. 10
    A computer-implemented method of defining a bitmap object as a polygon, the bitmap object having a boundary defining the perimeter of the bitmap object where the boundary includes one or more boundary pixels having one or more edges that contribute to the perimeter, the method comprising:tracing around the bitmap object along the boundary;for each boundary pixel, identifying a pair of adjacent boundary pixels and determining the edges of the boundary pixel that contribute to the perimeter based on the location of the pair of adjacent boundary pixels relative to the location of the boundary pixel;and accumulating the edges to define a polygon.
  3. 13
    A method of defining a polygon from a sequence of direction codes, each direction code representing a direction from an eight-connected pixel to an adjacent eight-connected pixel, comprising:determining a sequence of direction codes based on tracing around a bitmap object;inputting sequentially each direction code to a finite state machine having a current state, each input causing the finite state machine to determine one or more edges of a polygon based on the current state and the direction code input, and each input causing the finite state machine to transition to a new state;and accumulating the identified object pixel edges to define the polygon.
  4. 14
    A method for generating a polygon from a bitmap object, the bitmap object having a boundary defining the perimeter of the bitmap object where the boundary includes one or more boundary pixels having one or more edges that contribute to the perimeter, the method comprising:tracing around the bitmap object along the boundary and generating a chain direction code for each boundary pixel, the chain direction code defining a direction from a current to a next boundary pixel in the path around the bitmap object;based on the chain direction codes generated, identifying the edges that contribute to the perimeter;and accumulating the identified perimeter edges to define a polygon corresponding to the perimeter of the bitmap object.
  5. 15
    A method of encoding a bitmap object, the bitmap object having a boundary defining the perimeter of the bitmap object where the boundary includes one or more boundary pixels having one or more edges that contribute to the perimeter, the method comprising:calculating a sequence of direction codes based on tracing around the bitmap object along the boundary, where each direction code represents a direction from an eight-connected pixel to an adjacent eight-connected pixel;inputting sequentially each direction code to a finite state machine having a current state, each input causing the finite state machine to calculate one or more boundary pixel edges that contribute to the perimeter based on the current state and the direction code input, and each input causing the finite state machine to transition to a new state;and storing the states to define a polygon.
  6. 16
    A computer program tangibly stored on a computer-readable medium for converting a bitmap object to a polygon, the bitmap object having a boundary defining the perimeter of the bitmap object where the boundary includes one or more boundary pixels having one or more edges that contribute to the perimeter, the program comprising:a tracing module including instructions for causing a computer to trace around the boundary of the bitmap object and generate a plurality of chain direction codes where each chain direction code defines a direction from a boundary pixel to an adjacent boundary pixel;and a polygon generating module including instructions for causing the computer to identify for each boundary pixel one or more edges of the boundary pixel that contribute to the boundary based on two or more of the chain direction codes generated by the tracing module and to produce as output a polygon having an outline defined by the edges.
  7. 18
    Broadest claimClaim Score 92, very broad(NHIP)A computer-implemented method of trapping an imagemask, comprising:identifying all of the perimeter edges of the imagemask, a perimeter edge being a pixel edge that contributes to the perimeter of the imagemask;accumulating the identified perimeter edges to define a polygon;and defining traps for the polygon.
  8. 20
    A computer-implemented method of trapping a bitmap object, the bitmap object having a boundary defining the perimeter of the bitmap object where the boundary includes one or more boundary pixels having one or more edges that contribute to the perimeter, the method comprising:defining a polygon from boundary pixels edges that contribute to a perimeter of the object and accumulating the contributing edges;planarizing a page including the polygon and one or more other vector objects;trapping the polygon against the other vector objects on the page.
  9. 21
    A method for printing a page including an imagemask, comprising:defining the imagemask as a polygon, including identifying all of the perimeter edges of the imagemask and accumulating the identified perimeter edges to define the polygon, a perimeter edge being a pixel edge contributing to the perimeter of the imagemask;mapping the polygon to device space;filling the polygon;and rendering the page using the filled polygon.
  10. 22
    A method of trapping a bitmap object having a perimeter against a vector object in a vector-based trapping system, comprising:constructing a polygon congruent to the perimeter of the bitmap object, including identifying pixels in the object having one or more edges that contribute to the perimeter and accumulating the edges that contribute to the perimeter;and using the polygon to define vector-based traps for the object.