## Versions: 3.5 | 3.2 | 3.1 | 3.0.x | 2.0.x

v3.1

### General

- Smooth zooming in the plug-in area. This option is accessible in the plug-in area advanced properties, and through the QPx_SetAreaFlags command with the new qpx_SmoothZoomingFlag and qpx_SmoothZoomingMask flags.

- High quality image resizing and rotation. This option is accessible in the plug-in area dialogs, and through the following commands with the new qpx_ResizeHighQuality and qpx_RotateHighQuality flags.

  - QPx_ResizeAreaImage
  - QPx_RotateAreaImage
  - QPx_ResizePicture
  - QPx_RotatePicture

- When rotating a picture by non-multiples of 90 degrees, it is now possible to specify the fill color of the background area. This option is accessible in the plug-in area dialog, and through the following commands with the new qpx_RotateFillBackground flag.

  - QPx_RotateAreaImage
  - QPx_RotatePicture

- Major performance improvement when rotating pictures by multiples of 90 degrees.

- The following commands use temporary files only when saving over existing files, avoiding unnecessary file copying.

  - QPx_CreateMultipageTIFFFile
  - QPx_CreatePDFFile
  - QPx_TranscodeJPEGFile

- When exporting JPEG images, it is now possible to embed thumbnails to the exported images by specifying the qpx_ExportThumbnail option to the export command. The embedded thumbnails are 160 x 120 pixels max by default, in compliance with the Exif2.1/DCF specification. The maximum size of the embedded thumbnails is controlled by two new plug-in options:

  - `/export/exif-thumb-width`
  - `/export/exif-thumb-height`

- When exporting with "Best depth" selected in the export settings dialog, the depth of the original image is used.

- It is now possible to specify the amount of time it takes for a progress dialog to show up. There are separate plug-in options for the import and export progress dialogs:

  - `/import/progress-delay-ticks`
  - `/export/progress-delay-ticks`

- Added support for more more EXIF 2.2 tags (decoding and constants).

- Added constants for image depth values.

### Acquisition

- New events allow some degree of customization of the acquisition process and user interface.

  qpx_AcqSetupWindowBounds
    Specify the location and size of the acquisition window (Mac PTP, Video).
  qpx_AcqSetupWindowTitle
    Specify the title of the acquisition window (Mac PTP, Video).
  qpx_AcqSetupResolution
    Specify the image resolution (GUI-less TWAIN, Video).
  qpx_AcqSetupPixelFormat
    Specify the pixel format (GUI-less TWAIN).

  The last two are very useful for GUI-less scanning in document archiving applications, where documents must be scanned at a specific resolution usually in black and white.

- There are new TWAIN-related plug-in options that aid in working around issues with problematic drivers:

  - `/acq/twain/transfer-mechanism`
  - `/acq/twain/event-loop-in-hidden-gui`
  - `/acq/twain/extended-negotiation`
  - `/acq/twain/task-4d`

### PDF generation

- New commands for generating multi-page PDF files (and optionally page thumbnails) from a series of image files or 4D pictures:

  QPx_CreatePDFFile
    Creates a PDF file from individual images.
  QPx_CreatePDFBLOB
    Creates a PDF BLOB from individual images.

- Related plug-in options:

  - `/pdf/gen/thumb-width`
  - `/pdf/gen/thumb-height`

### PDF importer Mac OS X/Windows

QPix 3 included a custom PDF importer that was based on the QuickTime/Mac movie importer. Although the QPix graphic importer was much better than the one built into QuickTime, there was not enough room for improvement because the base (the PDF movie importer) was very limiting.

In QPix 3.1 a new PDF importer was written from scratch. The new importer calls directly into Core Graphics, the system-wide PDF engine of Mac OS X. With the new importer it is now possible to specify through plug-in options the rendering resolution of PDF images, and also the PDF rectangle that constitutes the page bounds. The old PDF importer is still available, but disabled by default (can be enabled through a plug-in option).

QPix 3.1 also includes a PDF importer for the Windows platform. The Windows PDF importer uses AFPL Ghostscript, an open-source postscript interpreter. Because of this, the Windows PDF importer is not enabled by default. To enable the importer, two things must be done:

- Download and install AFPL Ghostscript.

  In compliance with the AFPL, the end-user must download and install AFPL Ghostscript on his/her computer.

- Point QPix to the AFPL Ghostscript DLL.

  QPix does not automatically detect the presence of the AFPL Ghostscript DLL. It must be pointed to the AFPL Ghostscript DLL by setting the `"/pdf/import/dll-path"` plug-in option before other plug-in commands are called:

  `$err:=QPx_SetOption("/pdf/import/dll-path";0;"C:\\Program Files\\gs\\gs8.54\\bin\\gsdll32.dll")`

New plug-in options related to the PDF importers:

- `/pdf/import/component`
- `/pdf/import/horz-res`
- `/pdf/import/vert-res`
- `/pdf/import/page-rect`
- `/pdf/import/dll-path` (Windows only)

### Custom Icons

There are new commands for working with custom file icons (Mac only):

QPx_SetCustomIcon
  Sets the custom icon of a file.
QPx_GetCustomIcon
  Retrieves the custom icon of a file.
QPx_ClearCustomIcon
  Clears the custom icon of a file.

### Other enhancements

- Eliminated extra redraws of the plug-in area when the QPx_SetAreaFlags is called directly or indirectly through the advanced properties.
- All images acquired within the same second have a sequence number appended to the file name.

### Bug fixes

- Worked around QuickTime/Windows bugs related to image scaling.
- Thumbnails created from images with different horizontal and vertical resolution did not respect the aspect ratio of the original image. Fixed.
- QPx_GetImportTypes could return incorrect information for the alias types of specific importers. Fixed.
- The old PDF importer could not work with memory-based PDF data (i.e. PDF data in BLOBs). Fixed.
- The Exif tag reader could return garbage characters appended to the user comment data. Fixed.
- QPx_GetTagInstanceText was returning only one element when requested to retrieve the tag elements from multi-element IPTC tags in a text array. Fixed.
- Multiple export options were not applied correctly internally (only the first option was used). Fixed.
- Addressed printing issues on Mac and Windows.
- Cosmetic fixes in the PTP and Video acquisition dialogs
- A bug in QuickTime prevents the PICT importer to report correctly the pixel depth of PICTs that contain QuickTime-compressed data. Implemented a workaround in QPix.
- Fixed the constant for the JPEG 2000 format (qpx_JPEG2000File). Was incorrectly set to `"JP2 "`, now it is `"jp2 "`.
- The `"/acq/twain/allow-wia-devices"` option was not filtering correctly the TWAIN device list on Windows. Fixed.
- Fixed a problem where an plug-in area placed on page 0 would dissappear when the user switched pages under 4D 2004.x.
- Fixed a small visual glitch in the plug-in area menu highlighting on Tiger (the only "problem" on Tiger).