Tips For Success

Having the best tools for document imaging is only half of the equation. Our Tech Tips are designed to provide you with valuable information to help succeed by achieving faster results with RasterMaster SDKs or FlexSnap viewers. New time-saving tips are added monthly - you can receive them through Imaging News or our Tech Tips RSS feed.

Improving the display of large image files in your applications

This Tech Tip appeared in Imaging News August 2004.

When working with large image files, display quality problems often occur in areas of detailed content, such as small text or thin lines. In order to achieve the best display of a large images that contain small detailed elements, create an image buffer in the form of a temporary snowbound object. The reduced image will match your screen resolution and size thus resulting in a greatly improved display. Here's how:

********************** IN JAVA (Java Imaging Toolkit ) *************************

public class SnowPanel extends Panel

{

....

....

public void paint(Graphics g)

{

if (wereDisplayChangesMade)

displayImage = getNewDisplayImage(mainImage);

//Do rest of painting with new displayImage object......

}

private Snowbnd getNewDisplayImage(Snowbnd sourceImage)

{

if (mainImage != null)

{

//Create Copy - Copy will contain all the current settings

 

Snowbnd display_image = new Snowbnd(sourceImage);

//Calculate the reduces width and height of the new image

int width = (display_image.getWidth() / 2);

int height = (display_image.getHeight() / 2);

//Create the reduced image and return

displayImage.IMG_create_thumbnail(width,height);

return displayImage;

}

return null;

}

......

......

}

 

*********************** IN C/C++ (Windows Imaging Toolkit) *********************

int getNewDisplayImage(int srcImgHandle)

{

if (srcImgHandle != 0)

{

int width,height,bpp;

LPDIB_HEADER lpbi =

IMG_bitmap_info(srcImgHandle,&width,&height,&bpp);

int newImgHandle =0;

if (two_ways_to_create_a_duplicate_image)

{

newImgHandle = IMG_create_handle_shell(lpbi);

if (bpp == 1)

IMG_dib_to_runs(newImgHandle);

IMG_merge_bitmap_handle(newImgHandle,nHandle,0,0,0);

}

else //Or this way

{

newImgHandle =

IMG_decompress_bitmap_mem((char*)lpbi,0);

}

///Set gamma, contrast, brightness, aliasing, etc...

//Calculate the reduces width and height of the new image

width = (width / 2);

height = (height / 2);

//Create the reduced image and return

IMG_create_thumbnail(newImgHandle,width,height);

return newImgHandle;

}

return 0;

}

*Note: Printing and manipulation functions should be performed on the original image.