Purpleview (all the good names were taken) A simple image viewer for Windows Version 1.3.2 - Jul. 2010 Copyright (c) 2002-2010 Jason Summers Currently supports reading: PNG, BMP, JPEG Currently supports writing: PNG, BMP, uncompressed TIFF ==================== License ==================== This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . A copy of the GNU General Public License is included in the file COPYING.txt. To get the latest version of Purpleview, visit the web site at . ==================== Introduction ==================== Purpleview is an application for Win32 computers which displays some types of image files. It's mainly intended for PNG images, but also supports some other types (currently, BMP and JPEG). It is a rather primitive program, without many features, but it loads very quickly and displays images very accurately. ==================== Installation ==================== To install, put the purpleview.exe file somewhere on your computer. Open it to run Purpleview. ==================== Instructions ==================== Load a image by selecting File|Open from the menu, or by drag-and-drop from Windows Explorer, or by specifying it as a command-line parameter to purpleview.exe. Features -------- Image Information - Shows some technical details about the current image file. Copy - Copies the current image to the Windows clipboard. Paste - Retrieves an image from the Windows clipboard. Stretch - Stretches small images as much as needed to fit within the visible window. Has no effect on the image that will be saved. Shrink - Shrinks large images to fit within the visible window. Has no effect on the image that will be saved. If this is OFF, scrollbars will be available to scroll the image. Gamma Correction - Toggles gamma correction. If you turn this off, some images, or parts of images, will look too light or too dark. Currently, this aplies only to PNG images. Save As PNG / BMP / TIFF - Saves the visible (unstretched) image to a file. IMPORTANT--- This saves the image as it is currently being displayed. The saved image will not have any transparency, and the background color and gamma correction will be applied to the image, not saved as meta-data. This means that you can lose information by loading and then saving a PNG image. Background colors - You can define a background color that will be used in certain situations. The following logic is used to select a background color: If "Use Image's Background Color" is checked, and the current PNG image file contains a suggested background color, that suggested background color will be used. Otherwise, if "Use Custom Background Color" is checked, your custom background color will be used (by default this is a very light gray color). Otherwise, no background color will be used at all, and transparency information in the image will be completely ignored. Some images will not look very good in this situation. (The border color used in this case will be either your default window background color, or your custom background color, as determined by the setting in the Advanced Options dialog.) Set Monitor Gamma - If you have an unusual display, you can calibrate it using this function. This will allow Purpleview to display PNG images at the exact brightness at which they were intended. This has no effect if gamma correction is disabled, or for image types other than PNG. This setting also affects the PNG images you save -- your monitor gamma will be recorded in the PNG image. Advanced Options - You can change some other things here... Image Alignment - Controls position of images that are smaller than the window size. TL means Top Left, C means Center, etc. Correct for non-square pixels - If the image has a different density in the X direction than the Y direction (rare), it can be stretched to compensate for this. 32-bit BMP images have transparency - Just leave this turned off. Bitmap stretch mode - You should probably leave this set to "Normal". LIMITATIONS ----------- If you make a change to the gamma or background color settings while viewing a PNG image, the image file will be reloaded from disk. (That's not the ideal for the program to do, but fixing it would require storing an extra copy of the original file.) If you turn off "Shrink Images", scrollbars will always be displayed, even if they aren't necessary. The scrollbars really should be hidden, rather than disabled. There should be only one "Save As" menu item. A filename isn't suggested when saving to a different format. Probably works quite poorly on a display with limited colors (256- or 16-color). Windows' bitmap stretching functions are used to paint the image. Most video drivers have limits on the amount they are able to stretch or shrink a bitmap. If this limit is exceeded, the image will not display, and you may see the message "GDI ERROR". ==================== History ==================== Changes in version 1.3.2 (versus 1.3.1) * Updated the binary to use newer libraries. * Added Unicode support. * Changed licence from GPL 2 (or higher) to GPL 3 (or higher). Changes in version 1.3.1 (versus 1.3.0) * Updated the binary to use pngdib 3.0.1. Changes in version 1.3.0 (versus 1.2.0) * Ability to set monitor gamma. * Display gamma status in title bar. * PNG support modified to use pngdib 3.0's new API. Changes in version 1.2.0 (versus 1.1.0) * You can now drag images that are larger than the window. ==================== Compiling ==================== Compiles with Visual C++ 2008. Might work with other compilers. For PNG support, requires pngdib (v3.0+): which requires libpng: which requires zlib: For (read-only) JPEG support, requires the JPEG software from the Independent JPEG group: Can by compiled without JPEG or PNG support by editing pvconf.h.