Developing software and designing images you often need to extract them from some external source, apply some transformations and conversions, save prepared images and then use in your developed applications. Performing these steps you can find useful some interesting features of Sharp IMG Viewer 2008.
Sharp IMG Viewer 2008 is a resource explorer which lets to open images, extract from various sources, save images in other formats, view image properties including metadata and perform operations on selected images.
This article describes the methods available to import images from assemblies, archives, disk image files, virtual disk files, Windows executables, resources, compound and compiled help files. You are supposed to know main Microsoft Windows architecture principles.
Sharp IMG Viewer 2008 is developed for the .NET Framework 2.0 or later. I recommend you to install the latest .NET Framework 3.5 SP1 which includes the most recent fixes from Microsoft to use all features of Sharp IMG Viewer 2008 including import from disk image files and virtual disk files based on DiscUtils library developed by Kenneth Bell. If .NET Framework 4.0 or later was preinstalled installation of the .NET Framework 2.0 is not needed to setup.
Download the recent version from Sharp IMG Viewer 2008 website.
Please reference the Sharp IMG Viewer 2008 documentation and readme file to become acquainted with hardware and software requirements and installation procedure.
Import from image files
Sharp IMG Viewer 2008 allows you to open all image file formats supported by GDI+ (bitmaps, icons and metafiles) as well as Windows cursors, animated cursors and AVI frames. Moreover you can import images from many additional file formats supported by FreeImage open source graphics library by choosing File->Import->From Image File... menu item.
It is possible to select one or several image files and then press Open button to import them to Sharp IMG Viewer 2008 main window.
As you understand reading the FreeImage documentation in addition to standard monochrome, grayscale, palletized, RGB and RGBA bitmaps nonstandard UINT16, INT16, UINT32, INT32, FLOAT, DOUBLE, COMPLEX, RGB16, RGBA16, RGBF and RGBAF image storage types are handled. Camera RAW image files are imported as linear 48-bit RGB16 bitmaps.
Import from executable files
There are several executable file types containing embedded resources supported by Windows: 16-bit LE Virtual device drivers, 16-bit NE executables, 32-bit PE executables and 64-bit PE+ executables. All these types are supported by Sharp IMG Viewer 2008. For example, you can extract some nice images from the popular Skype dialer to include them to your application. You can use Sharp IMG Viewer 2008 to preview resources by choosing File->Import->From Executable... menu item and selecting Skype.exe executable. Opening this file you will see a lot of resource items of various types.
You can change list view mode to details by selecting view menu above the resource list to see resource types. Your task is to select your needed images by pressing UP and DOWN keys or by clicking the mouse button on the list items. Sharp IMG Viewer 2008 simplifies the task by displaying the resource preview immediately on selecting list item. You are also enabled to select preview mode from the combo box.
You may preview all standard resource types such as dialogs, menus, accelerators, version, manifest, string and message tables as well as decompiled Delphi forms from RCData resources.
Nevertheless you need to concentrate attention to bitmaps, cursors and icons. It must be pointed out cursors and icons with different dimensions and resolutions are shown as combined to groups unlike to other resource viewers. The purpose is to reduce a total number of items shown in the resource list. If you need to import an icon with specific dimensions or resolution you can extract this icon later after importing of entire icon group.
It should be noticed some images can be stored as RCData or custom type resources. There is no need to perform any distinctive actions, you can select and preview them as usually.
You also can find useful an opportunity to extract and save selected resources to some folder for further review. To use this feature press the Extract to folder button above the resource list and select a folder to extract resources.
Import from .NET resources
Sharp IMG Viewer 2008 allows you to decompile resource information from either binary files (*.resources) or XML files (*.resx). In order to view resources you should choose File->Import->From Resource... menu item and select .resources or .resx file. .NET resource files are often used by Windows form and control design tools, but .NET developers can include resource files with arbitrary data into their applications. You can import not only bitmaps, cursors and icons, but image lists also. Image lists containing sets of images are stored in resource files and can be deserialized using System.Windows.Forms.ImageListStreamer class.
When your application is ready for localization and contains localizable user-interface elements strings needed for a particular culture are stored in culture-specific resource files and are then built into satellite assemblies.
WPF XAML Forms introduced in .NET Framework 3.0 to describe user interfaces are translated into binary BAML files and then are embedded into the binary .resources files. You can use preview to display BAML files in decompiled form.
Import from .NET assemblies
.NET assemblies can contain optional embedded resources stored in sections different from ordinary PE files. These resources are described by assembly manifest and can be extracted by Sharp IMG Viewer 2008. If you wish to read embedded resources packaged inside .NET assembly choose File->Import->From Assembly... menu item and select the assembly .exe or .dll file.
You can also explore embedded .resources files using mouse by double-clicking corresponding items.
Moreover as aforesaid you can extract and save selected resources to some folder pressing the Extract to folder button above the resource list.
Import from archives
Archives make it easy to group files and make transporting and copying these files faster. Archives are frequently used to store compressed files distributed by application installers for deployment purpose to reduce total package size. Archive files can be intended for backup purpose also. Compression methods and compression ratio used can vary depending from the archive type. Some archives can be encrypted using specified password. Java archive files and document files used by the latest Office applications have the structure of Zip archives. Sharp IMG Viewer 2008 enables you to explore and decode files from the most important Zip, GZip, BZip2, Tar, Z, PPMd, 7z, LZMA, Microsoft Cabinet and WIM format archives, self-extracting Zip, 7z, Microsoft Cabinet archives as well as ISO, FAT, NTFS disk image files by choosing File->Import->From Archive... menu item. Therefore, as mentioned above, the executable files can be interpreted in three ways: as executable, as .NET assembly or as self-extracting archives.
You can preview both image files and text, XML, HTML, RTF, document, binary files depending from the file extension.
Besides you can explore any archive and .NET resource files contained in the archive. You may display compressed, uncompressed size, modification time and compression method changing list view mode to details. Opening Microsoft WIM files introduced in Windows Vista you can see the XML data from the embedded manifest describing the file and the contained images.
Import from compound files and compiled HTML help files
Compound document files (*.doc, *.xls, *.ppt ect.) were used by Microsoft Office applications such as Word, Excel, PowerPoint prior to version 2007, but these files are still frequently used so far. Moreover Microsoft Installer packages use the same compound file format. Compound document file consists of storages and streams to implement embedding and linking as explained in OLE documentation. Compiled HTML help files (*.chm) have different structure, but the content can be accessed using the same IStorage and IStream COM-interfaces. You can open either compound document files or compiled HTML help files by choosing File->Import->From Compound File... menu item.
To find embedded images you should find inner streams inside outer storage.
You can explore compiled HTML help files in the same way as archives.
Compound document files sometimes contain images and icons stored as streams as you can see in Microsoft Installer packages.
However, stream names can contain any special symbol. There are special purpose \x0005SummaryInformation and \x0005DocumentSummaryInformation streams used to store property sets, which can include title, subject, keywords, description, modification date etc. You can explore property sets double-clicking them using a mouse. Obviously, you may display property names and types changing list view mode to details. It should be noticed property sets can contain properties of type VT_CF with clipboard data to save thumbnail image information.
Import from virtual disk files
Virtualization is a way to abstract applications and their underlying components away from the hardware supporting them and present a logical view of these resources. The most widely known virtualization implementations are provided by Microsoft Virtual PC, Microsoft Hyper-V Server 2008/2012, Microsoft Windows Server 2008/2012 Hyper-V, Vmware ESX Server, Oracle VM VirtualBox, Citrix XenServer Virtual Appliance. To explore VMware VMDK, Oracle VirtualBox VDI, Microsoft VHD, XenServer Virtual Appliance XVA virtual machine disk files and Simple Deployment Image files you should choose File->Import->From Virtual Disk File... menu item. You will see a list of virtual disk partitions with volume labels.
Master boot record (MBR) disks use the standard BIOS partition table. Basic disks can contain up to four primary partitions. If you want to create more than three partitions, the fourth partition is created as an extended partition. An extended partition is a container that can hold an unlimited number of logical drives. Dynamic disks can contain an unlimited number of dynamic volumes that function like the primary partitions used on basic disks. GUID partition table (GPT) disks use extensible firmware interface (EFI). One advantage of GPT disks is that you can have more than four partitions on each disk. To save selected partitions as disk image files with .img extension press the Extract to folder button above the resource list and select a folder as usually. You are allowed to explore the content of FAT and NTFS partitions double-clicking them using a mouse. Afterwards you can preview files and import images from the examined partition similar to archives and disk image files.