Applying Artistic Effects

The following functions are designed specifically for artistic effects:

Function

Purpose

LBitmap::AddNoise

Adds random pixels to a bitmap, letting you specify the percentage of coverage and the color plane.

LBitmap::AddShadow

Adds shadows to a bitmap, letting you specify the threshold value, the direction of the light source, and whether the shadows are colored or grayscale.

LBitmap::Aging

Adds effects that simulate random color changes, scratches, dust and pits, making a bitmap look like it was made from an old film.

LBitmap::Bending

Wraps the bitmap along the inside or outside of an arc pattern.

LBitmap::BricksTexture

Creates a brick texture that makes the image look like it has been drawn on a brick wall.

LBitmap::BumpMap

Adds a three-dimensional texture pattern by applying the bump image to the destination image.

LBitmap::Canvas

Applies an image as an overlay for another image.

LBitmap::Clouds

Generates different cloud patterns.

LBitmap::ColoredBalls

Adds colored balls to the bitmap. Various parameters control the color and appearance of the balls.

LBitmap::ColoredPencil

Applies a colored pencil effect to a bitmap. This function brightens the bitmap and enhances its edges.

LBitmap::Cubism

Remaps the bitmap into a collection of rotated rectangles (cubic faces), in the Cubist style.

LBitmap::Cylindrical

Warps the bitmap to a cylindrical shape.

LBitmap::DiceEffect

Splits the image into square or rectangular blocks. If the blocks are square, rotates each block by 0, 90, 180, or 270 degrees. If the blocks are rectangular, flips the blocks around the X-axis and Y-axis.

LBitmap::DiffuseGlow

Adds a colored glow to a bitmap's light or dark areas, making these areas shine with a neon glow.

LBitmap::DisplaceMap

Displaces bitmap pixels horizontally and vertically according to the values of the displacement map image.

LBitmap::DrawStar

Draws a star on the bitmap.

LBitmap::Dry

Simulates painting an image with the watercolor dry brush technique.

LBitmap::Emboss

Applies an emboss effect to a bitmap, letting you specify the depth and direction of the effect.

LBitmap::Fragment

Averages a bitmap with its shifted copies.

LBitmap::FreeHandShear

Shears the bitmap by the wave drawn using amplitude values obtained from LBitmap::GetCurvePoints.

LBitmap::FreeHandWave

Distorts the bitmap by the wave drawn using amplitude values obtained from LBitmap::GetCurvePoints and a specified angle.

LBitmap::FreePlaneBend

Wraps the bitmap onto a 3D plane shaped by pnCurve.

LBitmap::FreeRadBend

Wraps the bitmap along its radius on a 3D surface shaped by pnCurve.

LBitmap::FunctionalLight

Adds light to the bitmap according to a function-based distribution. This functional light will be generated by one of the following methods: linear, quadratic, sine, cosine, or using freehand points.

LBitmap::HalfTonePattern

Creates a halftone screen effect for an image while keeping its continuous range of tones.

LBitmap::GlassEffect

Divides the image into cells and makes it look as if it is being viewed through glass blocks.

LBitmap::GlowFilter

Makes colored edges shine with a neon-like glow.

LBitmap::Impressionist

Makes a bitmap look like it was painted by an impressionist painter.

LBitmap::LensFlare

Simulates the secondary reflections caused when bright lights are facing the camera lens.

LBitmap::LightControl

Lightens or darkens all or part of a bitmap by remapping the pixel values.

LBitmap::Light

Adds many spots of directed light sources to the bitmap.

LBitmap::MaskConvolution

Multiplies the pixels of an image by a kernel, resulting in one of several 3D edge effects being applied to the image.

LBitmap::Mosaic

Imposes a mosaic effect on a bitmap by dividing the bitmap into tiles of a specified size and changing the color of all pixels in each tile to the average color of pixels within the tile.

LBitmap::MosaicTiles

Divides an image into rectangular or arc-shaped cells with irregular boundaries. This function makes an image look like a mosaic made from tiles. Tiles can be rectangular or arc-shaped, depending upon the coordinate system used to draw the tiles.

LBitmap::MotionBlur

Applies a filter, which creates the illusion of movement in an image.

LBitmap::Ocean

Reflects the bitmap on an ocean surface.

LBitmap::Oilify

Applies an oil-painting effect to a bitmap.

LBitmap::Offset

Shifts the bitmap pixels horizontally and vertically.

LBitmap::Perspective

Gives a bitmap a 3-D depth, as if it exists on a flat plane and has been skewed into a different shape.

LBitmap::PlasmaFilter

Applies color patterns that blend into each other like plasma.

LBitmap::Pointillist

Pointillism is a painting technique where the image is composed of tiny, separate dots of primary color. Non primary colors are created by placing primary colors beside each other and allowing the "mixing" to be performed when the image is viewed. This filter creates a similar effect.

LBitmap::Perlin

Uses a pseudo-random number generator in order to create a Perlin noise, and then procedurally transforms that noise into a texture.

LBitmap::Pixelate

Divides the bitmap into rectangular or circular cells and then recreates the image using those cells filled with the minimum, maximum, or average pixel value, depending upon the effect that was set.

LBitmap::PlaneBend

Places the bitmap on parallel planes along the Z-axis bent towards a center point.

LBitmap::Plane

Places the bitmap on parallel planes along the Z-axis.

LBitmap::Polar

Converts the bitmap from rectangular to polar coordinates and vice versa.

LBitmap::Posterize

Imposes a poster effect on a bitmap by quantizing the bitmap's colors to a specified number of color levels per plane. For example, two levels means two of red, two of green, and two of blue.

LBitmap::Punch

Warps the bitmap by pinching it toward the center or expanding the bitmap away from its center.

LBitmap::PuzzleEffect

Splits the image into square blocks and randomizes these blocks inside the image.

LBitmap::RadialBlur

Rotates the bitmap pixels around a center point.

LBitmap::RadWave

Distorts a bitmap using a wave radiating from the specified center.

LBitmap::RemoveRedEye

Replaces the red component of the pixels with the specified color. To replace only the red component for those pixels in the eyes of the bitmap, select a small region around the eye(s).

LBitmap::RevEffect

Adds a pseudo-3D wave effect to the bitmap by drawing horizontal lines across the bitmap and basing each line’s height at each point on its brightness at that point.

LBitmap::RingEffect

Divides the image into a certain number of rings. Each ring is rotated according to a rotate angle. The rotate angle for each ring will be chosen randomly by the function or can be passed to the function.

LBitmap::Ripple

Warps the image in concentric rings.

LBitmap::RomanMosaic

Divides the bitmap into rectangular or rounded rectangular cells and then fills each cell with a color chosen randomly from the colors of each tile’s pixels.

LBitmap::SampleTarget

Corrects color values by shifting the sample colors to the target colors.

LBitmap::Segment

Divides the bitmap into segments where each segment’s pixels have approximately the same color (homogenous color).

LBitmap::SmoothEdges

Smoothes the rough edges in the bitmap.

LBitmap::Solarize

Applies an effect that mimics the accidental exposure of photographic film to light.

LBitmap::Spherize

Warps the image around a 3D spherical shape.

LBitmap::Swirl

Produces a swirl pattern by rotating the bitmap the specified number of degrees about the specified point.

LBitmap::TextureAlphaBlend

Combines image data from pBitmapMask and pBitmapUnderlay with an underlay effect. The result is used as a fade mask that will be used to combine pBitmapSrc and pBitmapDst with variable opacity. The result is combined again with pBitmapDst using a constant opacity (using nOpacity).

LBitmap::Tunnel

Places the bitmap inside a tunnel along the Z-axis.

LBitmap::Vignette

Draws a specified shape and feathers it to the bitmap.

LBitmap::Wave

Distorts the bitmap with two perpendicular waves at the specified angle and with the specified wave type.

LBitmap::Wind

Creates thin lines, directed along the specified angle, on the specified bitmap.

LBitmap::ZoomBlur

Blurs the bitmap along radial lines starting from the specified center point.

LBitmap::ZoomWave

Distorts the bitmap with a wave zoomed from the specified center.

LBitmapBase::Underlay

Combines two bitmaps so that one appears to be an underlying texture for the other.

LBitmap::ZigZag

Radially distorts the bitmap by creating waves that twist the image around a specified center.

With any of these functions, except LBitmapBase::Underlay, you can limit the effect to a specified region of interest. For information about regions, refer to Defining and Using a Bitmap Region.

Treating the bitmap as a device context opens up many possibilities for artistic effects. The LBitmapBase::CreateLeadDC function lets you get the device context. You can then use the LEADTOOLS special effects functions to combine images in interesting ways. For example, when painting one image on top of another, you could specify a multi-pass paint with a brush effect; then quit before finishing all of the passes. The result would be a blending of the two images. For details, refer to Implementing Special Effects.