PixeLook
Development Group

See also:

[Image analysis]

[Vector editor]

[IPL wrapper]

[AVI - demo]

[Samples]

[ ZL.DLL ]

Monitor page
for changes

it's private
powered by
ChangeDetection

 

Tutorials

Tutorials

This section contains tutorials that can be used as a starting guide for using the PixeLook components. You will see that by using the power of Delphi visual programming and adding a few lines of code you can develop  quite sophisticated image processing and viewing software. The source code for all tutorials can be found in the main download file (see Download page). Compiled tutorial projects are also available among other sample projects.

Tutorials title and their topics

1

How to create an image viewer

  • Viewer for fixed image
  • Viewer for any image
  • Viewer for image sequences
  • Using lenses for image viewing
  • How to open many image formats in your program

2

AVI files: playing and processing

  • AVI file playing
  • AVI file processing
  • Converting AVI to a sequence of BMP files

3

Working with vector objects

4

Working with raster layers

  • Setting up a raster layer
  • Image visualization via TZDataBitmap object
  • Dynamic changing of a raster layer
  • Image processing examples

5

 

Working with graphics layers

6

 

Working with advanced image viewer

7

Working with TZThumbNavigator

  • Image preview application without writing code
  • Preview of image processing results
  • Adding external viewer

Samples

Sample projects (source code and compiled programs) can be obtained in the Download page. They demonstrate  different aspects of the library including either its basic and non-obvious features.

NEW! Image Algebra demo shows how to use parser-based ImageAlgebra() function to perform simple operations with two or three images.

NEW! Channel Algebra demo shows how to use parser-based ChannelAlgebra() function to perform simple operations with color channels.

NEW! Data Type demo shows how to:

  • work with multichannel images of different data types (byte, integer (16- and 32-bit), float (32- and 64-bit))
  • use parser-based CreateTestImage() function, which is useful for generating test images

NEW! Motion Detection demo shows how to:

  • implement motion detection system which is insensitive to global brightness changes
  • use correlation-based BlockCompare() function to compare images
  • use some unique properties of the TZVideoLink component

NEW! Bilinear Warping demo shows how to use new warping functions to perform quadrangle-to-quadrangle image transformation

NEW! Synchrinized Layers sample demonstrates one “hidden” feature of the library which is synchronized layers. This feature is useful for stereo or other multi-image applications dealing with correspondent features.

NEW! Multicolor Gradient demo shows simple way to create very complex multicolor gradients.

TBitmap demo shows how to use standard TBitmap image objects together with the PixeLook Library

LUT Editor demo shows how to implement Photoshop-like interface for RGB Look-Up-Tables.

ThumbCache demo shows how to

  • compose a big image from any other images or AVI files
  • extract any sub-image from the big image

Magnifier demo shows how to use raster layers to zoom an image region.

Alpha Draw is an example of image painting program with the following unique features:

  • Image tiling support; seamless patterns can be created easily;
  • Alpha-channel support; the alpha-channel can be painted as usual grayscale image;
  • Multiple pens, moving summetrically, can be used simultaneously for drawing (the image on the screenshot required just a few mouse movements);
  • Transparent pens; different pen shapes...

This demo shows also how to use the new components: TZTiledRaster and TZImageMenu.

TZOverview small demo shows how to use the new TZOverview component.

Note that the TZOverview component does not require writing a code (look at source code of the demo).

Undo/Redo demo shows how to

  • implement image processing with undo/redo options
  • manage and visualize image processing history
  • save image processing history to AVI file (just another example of WriteAVI function using)

Slide Show sample demonstrates how to use image transition effects.

Photo wall sample demonstrates how to:

  • organize non-standard image vizualization (similar to transparent image layers in PhotoShop)
  • use the new CreateThumbnail procedure
  • associate vector objects with any program objects (e.g. images, strings ...)

ROI Demo can be useful for image printing, when a specific image size is requred (15x10 cm, for example). The sample demonstrates how to:

  • set rectangular region of interest (ROI)
  • work with GDI+ import/export functions (just another example)

 Image list demo demonstrates how to:

  • use the new TZImageList class
  • work with sub-images (ROIs)
  • use TZImageMenu component

Image scale demo demonstrates how to use different image visualization properties:

  • Zoom levels, scales
  • Image tiling, stretching, centering
  • Resampling filters
  • Backgrounds, transparency

Now supports video capture

GDI+ demo shows how to use the new interface between TZDataBitmap image and GDI+ image objects:

  • reading JPEG, PNG, GIF, TIFF formats into TZDataBitmap object
  • processing of the TZDataBitmap image using GDI+ functions
  • saving TZDataBitmap image to JPEG, PNG, GIF, TIFF formats using GDI+ possibilities

Large image sample demonstrates how to:

  • create, load and use large images (~300MB on the screenshot)
  • work with both memory- and disk-based images
  • fill image data
  • use GDI commands on device context (DC), based on large image
  • use VCL graphics on TCanvas, based on large image
  • use own image canvas

Magic wand sample demonstrates how to use image processing and graphics procedures from the ZGems.pas unit:

  • Magic wand tool with region postprocessing
  • Linear filtering with user-defined or predefined kernel
  • Image resample with different filters
  • Geometric effects (concavity, wave, ripples, ...)
  • Image rotation and mirroring

Now supports video capture

Background sample demonstrates how to:

  • use different background styles (gradient and texture)
  • load texture from an image file
  • load textures from the program resources (examples for 8-bit and 32-bit bitmaps)
  • change the texture dynamically
  • drag-and-drop textures; paste textures via the clipboard
  • attach TZImageMenu component to the main menu of the application

AVI Write sample demonstrates how to

  • create an AVI files from a number of different images or AVI files
  • use the GraphicsEx library
  • paste images via the clipboard
  • paste images and AVI files by drag-and-drop

New Vector Commands sample demonstrates how to:

  • add non-standard vector object editing commands to the vector editor
  • implement non-standard dragging modes for vector objects

Channel Mapping sample demonstrates how to

  • change visualization of color channels
  • use internal buffer of TZImageBox component

Image processing sample demonstrates how to

  • implement simple image processing techniques such as edge detection, thresholding, histogram computation
  • use TZGraphBox component to visualize graphics
  • use integer (32-bit) images
  • implement video processing

Image processing (opacity demo)  sample demonstrates how to

  • implement simple image processing techniques such as edge detection, thresholding
  • use multi-layer visualization of images
  • change opacity of raster layers
  • implement video processing

Intel Image Processing Library (IPL) sample demonstrates how to

  • use all functions of the IPL wrapper
  • use region of interest (ROI) and channel of interest (COI) in image processing

Render to bitmap   sample demonstrates how to

  • use OpenGL to draw graphics in PixeLook’s components
  • render OpenGL graphics in both on-screen and off-screen modes

Seamless texture generation  sample demonstrates how to

  • generate textures for web pages or wallpapers
  • use CreateTexture function from the ZGems.pas unit
  • create image fragments

Transparency modes   sample demonstrates how to

  • use different combinations of transparency modes:
    • transparent color
    • opacity
    • alpha-blending
  • implement video capture

Rectangular Mesh   sample demonstrates how to:

  • implement editable rectangular mesh
  • model complex objects (2D-mesh) using existing vector objects (grid of point objects)
  • add custom drawing to the graphics layer
  • warp an image using ArbitraryWarping function from the ZGems.pas unit

XY-Graph   sample demonstrates how to

  • draw y=f(x) plots using vector graphics layer
  • store series (similar to the standard TChart component)

2D-Morphing  sample demonstrates how to

  • use image-to-image morphing and image warping procedures from the ZGems.pas unit
  • use synchronized vector graphics layers
  • use the TZThumbNavigator component
  • save and open complex layouts containing multiple images and graphics layers

Advanced Image Viewer demo   sample demonstrates how to

  • use the TZImageViewer component
  • use the image viewer in simple/advanced form and built-in/floating state
  • open AVI-files, images, image sequences
  • use the GraphicsEx library
  • paste images via the clipboard and via drag-and-drop
  • use graphics layers in the TZImageViewer component
  • save vector objects using Delphi streaming system
  • implement video capture and processing

 

F.A.Q. (Out of date, sorry)

Q

Can I view JPEG (GIF,TIFF ....) images using PixeLook components?

A

The package only works with the BMP image format (8 bit grayscale and indexed color, 15-, 16-, 24- and 32- bit color images). It also supports its own DIB-like data format for nonstandard data types (byte, integer, float, double). The purpose of the package was to work with internal properties of images (research projects connected with image processing). There are many free libraries that deal with different graphic formats and we do not want to reproduce such work. We would recommend the GraphicEx library (Delphi Gems website). Using this library you can convert many image formats into BMP with a few lines of code. For example, see Tutorial 1.

Q

Sometimes I can see the text 'Unregistered version’ at the bottom of the image...

A

This means that you are using a trial version. It is a fully functional version without time limit, but it can work only while Delphi IDE is running. After registration a patch will be sent by email. The patch removes the reminder message.

Q

How to zoom the image in a window.

A

Many zooming/scrolling options are now available:

    Use the following combinations of keys and mouse clicks. In all the cases below an image point under the mouse is centered in the window after the action.

    • CTRL + Mouse click   -   to zoom in
    • ALT + Mouse click  -  to zoom out
    • SHIFT + Mouse click -  to scroll

    Use the following combinations of keys and mouse actions.

    • CTRL + Dragging a rectangle by the mouse   -   to zoom in the rectangle
    • ALT + Dragging a rectangle by the mouse  -  to zoom out the rectangle

    Use the mouse wheel in combination with keys:

    • Mouse wheel only   -   scroll up/down
    • SHIFT + Mouse wheel  - scroll left/right
    • CTRL (or ALT) + Mouse wheel  - zoom in/out

    Use ‘Zoom’ context menu:

    • ‘Zoom in mode’ - to zoom in the image by mouse click
    • ‘Zoom out mode’  - to zoom out the image by mouse click
    • ‘Move mode’  - to scroll the image by mouse click
    • ‘Actual size’ - to cancel any zoom
    • ‘Fit to window’ - to find a best fit to the window

    Use the Advanced Image Viewer toolbar

 

Q

When I work with the Aperture tool in the Advanced Image Viewer I cannot fix an image fragment inside the  aperture window because it always follows the mouse

A

Use the SHIFT key and move the mouse

 

 

[Home] [News] [Features] [Components] [Screenshots] [Tutorials] [Download] [Order] [Contact us]

© Copyright PixeLook Development Group, 2002-2003. All rights reserved

Delphi™ is registered trademark of Borland Software Corporation.
Intel and Pentium are registered trademark of Intel Corporation.
PhotoShop is a trademark of Adobe Systems Inc.
All other trademarks are the property of their respective owners