|
|
|
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
|
|
|
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:
|
|
|
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:
|
|
|
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
|
|
|
Image processing (opacity demo) sample demonstrates how to
|
|
|
Intel Image Processing Library (IPL) sample demonstrates how to
|
|
|
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:
|
|
|
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
|
|
|
|