From ec57e0fd031e73eb41b044c99bfe95c270aa9eb7 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 5 Mar 2018 12:50:28 +0000 Subject: [PATCH] Add code to decode OS/2 monochrome icons and pointers, and a separate Icon Viewer for debugging. --- exeinfogui.XamMac/exeinfogui.XamMac.csproj | 1 + iconviewer/iconviewer.Desktop/Info.plist | 20 ++ iconviewer/iconviewer.Desktop/MacIcon.icns | Bin 0 -> 114177 bytes iconviewer/iconviewer.Desktop/Program.cs | 15 + .../iconviewer.Desktop.csproj | 17 ++ iconviewer/iconviewer/MainForm.xeto | 31 ++ iconviewer/iconviewer/MainForm.xeto.cs | 57 ++++ iconviewer/iconviewer/iconviewer.csproj | 24 ++ libexeinfo.sln | 12 + libexeinfo/Os2/Bitmap.cs | 268 ++++++++++++++++++ libexeinfo/libexeinfo.csproj | 1 + 11 files changed, 446 insertions(+) create mode 100644 iconviewer/iconviewer.Desktop/Info.plist create mode 100644 iconviewer/iconviewer.Desktop/MacIcon.icns create mode 100644 iconviewer/iconviewer.Desktop/Program.cs create mode 100644 iconviewer/iconviewer.Desktop/iconviewer.Desktop.csproj create mode 100644 iconviewer/iconviewer/MainForm.xeto create mode 100644 iconviewer/iconviewer/MainForm.xeto.cs create mode 100644 iconviewer/iconviewer/iconviewer.csproj create mode 100644 libexeinfo/Os2/Bitmap.cs diff --git a/exeinfogui.XamMac/exeinfogui.XamMac.csproj b/exeinfogui.XamMac/exeinfogui.XamMac.csproj index 3eb2af0..8e66985 100644 --- a/exeinfogui.XamMac/exeinfogui.XamMac.csproj +++ b/exeinfogui.XamMac/exeinfogui.XamMac.csproj @@ -9,6 +9,7 @@ v2.0 Xamarin.Mac Resources + 0.2 false diff --git a/iconviewer/iconviewer.Desktop/Info.plist b/iconviewer/iconviewer.Desktop/Info.plist new file mode 100644 index 0000000..8d03c79 --- /dev/null +++ b/iconviewer/iconviewer.Desktop/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleName + iconviewer + CFBundleIdentifier + com.example.iconviewer + CFBundleShortVersionString + 1.0 + LSMinimumSystemVersion + 10.7 + CFBundleDevelopmentRegion + en + NSHumanReadableCopyright + + CFBundleIconFile + MacIcon.icns + + diff --git a/iconviewer/iconviewer.Desktop/MacIcon.icns b/iconviewer/iconviewer.Desktop/MacIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..8f385bb4a566b103508f8e67794100af1354a65c GIT binary patch literal 114177 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 + + + WinExe + net461 + + + + + + + + + + + + diff --git a/iconviewer/iconviewer/MainForm.xeto b/iconviewer/iconviewer/MainForm.xeto new file mode 100644 index 0000000..e8b1a0a --- /dev/null +++ b/iconviewer/iconviewer/MainForm.xeto @@ -0,0 +1,31 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/iconviewer/iconviewer/MainForm.xeto.cs b/iconviewer/iconviewer/MainForm.xeto.cs new file mode 100644 index 0000000..ff8954c --- /dev/null +++ b/iconviewer/iconviewer/MainForm.xeto.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; +using System.Linq; +using Eto.Forms; +using Eto.Drawing; +using Eto.Serialization.Xaml; +using Bitmap = libexeinfo.Os2.Bitmap; + +namespace iconviewer +{ + public class MainForm : Form + { + ImageView imgIcon; + TextBox txtPath; + + public MainForm() + { + XamlReader.Load(this); + } + + protected void OnBtnPathClick(object sender, EventArgs e) + { + OpenFileDialog dlgOpenFileDialog = new OpenFileDialog {MultiSelect = false}; + dlgOpenFileDialog.Filters.Add(new FileFilter {Extensions = new[] {".ico"}}); + DialogResult result = dlgOpenFileDialog.ShowDialog(this); + + if(result != DialogResult.Ok) + { + txtPath.Text = ""; + imgIcon.Image = null; + return; + } + + txtPath.Text = dlgOpenFileDialog.FileName; + FileStream fstream = new FileStream(dlgOpenFileDialog.FileName, FileMode.Open); + byte[] data = new byte[fstream.Length]; + fstream.Read(data, 0, data.Length); + fstream.Dispose(); + + Bitmap.DecodedBitmap[] icons = libexeinfo.Os2.Bitmap.DecodeBitmap(data); + imgIcon.Image = new Eto.Drawing.Bitmap((int)icons[0].Width, (int)icons[0].Height, PixelFormat.Format32bppRgba, + icons[0].Pixels); + } + + protected void HandleAbout(object sender, EventArgs e) + { + new AboutDialog().ShowDialog(this); + } + + protected void HandleQuit(object sender, EventArgs e) + { + Application.Instance.Quit(); + } + } +} diff --git a/iconviewer/iconviewer/iconviewer.csproj b/iconviewer/iconviewer/iconviewer.csproj new file mode 100644 index 0000000..b931614 --- /dev/null +++ b/iconviewer/iconviewer/iconviewer.csproj @@ -0,0 +1,24 @@ + + + netstandard2.0 + iconviewer + 1.0 + iconviewer + Copyright © 2018 + Description of iconviewer + 0.2 + + + false + + + false + + + + + + + + + \ No newline at end of file diff --git a/libexeinfo.sln b/libexeinfo.sln index c0343ad..8149280 100644 --- a/libexeinfo.sln +++ b/libexeinfo.sln @@ -11,6 +11,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "exeinfogui.Desktop", "exein EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "exeinfogui.XamMac", "exeinfogui.XamMac\exeinfogui.XamMac.csproj", "{E2DC1857-A942-419B-849E-58AC8BBB94CD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iconviewer", "iconviewer\iconviewer\iconviewer.csproj", "{D6282B50-9A8D-44C5-8674-43BED27B5B53}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iconviewer.Desktop", "iconviewer\iconviewer.Desktop\iconviewer.Desktop.csproj", "{3206160A-B6AB-4B90-AC29-888C7E64A2CE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x86 = Debug|x86 @@ -37,6 +41,14 @@ Global {E2DC1857-A942-419B-849E-58AC8BBB94CD}.Debug|x86.Build.0 = Debug|Any CPU {E2DC1857-A942-419B-849E-58AC8BBB94CD}.Release|x86.ActiveCfg = Release|Any CPU {E2DC1857-A942-419B-849E-58AC8BBB94CD}.Release|x86.Build.0 = Release|Any CPU + {D6282B50-9A8D-44C5-8674-43BED27B5B53}.Debug|x86.ActiveCfg = Debug|Any CPU + {D6282B50-9A8D-44C5-8674-43BED27B5B53}.Debug|x86.Build.0 = Debug|Any CPU + {D6282B50-9A8D-44C5-8674-43BED27B5B53}.Release|x86.ActiveCfg = Release|Any CPU + {D6282B50-9A8D-44C5-8674-43BED27B5B53}.Release|x86.Build.0 = Release|Any CPU + {3206160A-B6AB-4B90-AC29-888C7E64A2CE}.Debug|x86.ActiveCfg = Debug|Any CPU + {3206160A-B6AB-4B90-AC29-888C7E64A2CE}.Debug|x86.Build.0 = Debug|Any CPU + {3206160A-B6AB-4B90-AC29-888C7E64A2CE}.Release|x86.ActiveCfg = Release|Any CPU + {3206160A-B6AB-4B90-AC29-888C7E64A2CE}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution version = 0.2 diff --git a/libexeinfo/Os2/Bitmap.cs b/libexeinfo/Os2/Bitmap.cs new file mode 100644 index 0000000..ee77247 --- /dev/null +++ b/libexeinfo/Os2/Bitmap.cs @@ -0,0 +1,268 @@ +// +// Accelerator.cs +// +// Author: +// Natalia Portillo +// +// Copyright (c) 2017 Copyright © Claunia.com +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; + +namespace libexeinfo.Os2 +{ + public class Bitmap + { + /// + /// 'IC', OS/2 only, icon + /// + public const ushort TYPE_ICON = 0x4349; + /// + /// 'BM', OS/2 and Windows, bitmap + /// + public const ushort TYPE_BITMAP = 0x4D42; + /// + /// 'PT', OS/2 only, cursor + /// + public const ushort TYPE_POINTER = 0x5450; + /// + /// 'CI', OS/2 only, color icon + /// + public const ushort TYPE_COLOR_ICON = 0x4943; + /// + /// 'CP', OS/2 only, color cursor + /// + public const ushort TYPE_COLOR_POINTER = 0x5043; + /// + /// 'BA', OS/2 only, bitmap array + /// + public const ushort TYPE_BITMAP_ARRAY = 0x4142; + + /// + /// This will decode a bitmap array, or if data is not an array, return an array with the single bitmap element + /// + /// Data + /// Array of , one per bitmap, null if the bitmap could not be decoded + public static DecodedBitmap[] DecodeBitmap(byte[] data) + { + long pos = 0; + BitmapArrayHeader bitmapArrayHeader; + BitmapInfoHeader bitmapFileHeader; + byte[] buffer = new byte[Marshal.SizeOf(typeof(BitmapInfoHeader))]; + + Array.Copy(data, pos, buffer, 0, buffer.Length); + bitmapArrayHeader = BigEndianMarshal.ByteArrayToStructureLittleEndian(buffer); + bitmapFileHeader = BigEndianMarshal.ByteArrayToStructureLittleEndian(buffer); + + List headers = new List(); + List palettes = new List(); + List datas = new List(); + + do + { + Array.Copy(data, pos, buffer, 0, buffer.Length); + bitmapArrayHeader = BigEndianMarshal.ByteArrayToStructureLittleEndian(buffer); + long remaining; + + if(bitmapArrayHeader.Type == TYPE_BITMAP_ARRAY) + { + remaining = bitmapArrayHeader.Size - Marshal.SizeOf(typeof(BitmapArrayHeader)); + pos += Marshal.SizeOf(typeof(BitmapArrayHeader)); + } + else + { + remaining = 1; + pos = 0; + } + + while(remaining > 0) + { + buffer = new byte[Marshal.SizeOf(typeof(BitmapInfoHeader))]; + Array.Copy(data, pos, buffer, 0, buffer.Length); + bitmapFileHeader = BigEndianMarshal.ByteArrayToStructureLittleEndian(buffer); + + // Stop at unknown header + if(bitmapFileHeader.Size != Marshal.SizeOf(typeof(BitmapInfoHeader))) break; + + // Multiplanes not supported + if(bitmapFileHeader.Planes != 1) break; + + // TODO: Non paletted? + pos += bitmapFileHeader.Size; + RGB[] palette = new RGB[1 << bitmapFileHeader.BitsPerPlane]; + buffer = new byte[Marshal.SizeOf(typeof(RGB))]; + for(int i = 0; i < palette.Length; i++) + { + Array.Copy(data, pos, buffer, 0, buffer.Length); + pos += buffer.Length; + palette[i] = BigEndianMarshal.ByteArrayToStructureLittleEndian(buffer); + } + + headers.Add(bitmapFileHeader); + palettes.Add(palette); + remaining -= bitmapFileHeader.Fix; + // rgb[1]; + remaining -= 1; + + buffer = new byte[bitmapFileHeader.X * bitmapFileHeader.Y * bitmapFileHeader.BitsPerPlane / 8]; + Array.Copy(data, bitmapFileHeader.Offset, buffer, 0, buffer.Length); + datas.Add(buffer); + } + + pos = bitmapArrayHeader.Next; + } + while(bitmapArrayHeader.Next != 0); + + DecodedBitmap[] bitmaps = new DecodedBitmap[datas.Count]; + + for(int b = 0; b < bitmaps.Length; b++) bitmaps[b] = DecodeBitmap(headers[b], palettes[b], datas[b]); + + return bitmaps; + } + + static DecodedBitmap DecodeBitmap(BitmapInfoHeader header, IList palette, byte[] data) + { + DecodedBitmap bitmap = new DecodedBitmap + { + BitsPerPixel = header.BitsPerPlane, + Height = header.Y, + Width = header.X, + XHotspot = header.XHotspot, + YHostpot = header.YHostpot, + Pixels = new int[header.X * header.Y] + }; + + switch(header.Type) + { + case TYPE_ICON: + bitmap.Type = "Icon"; + break; + case TYPE_BITMAP: + bitmap.Type = "Bitmap"; + break; + case TYPE_POINTER: + bitmap.Type = "Pointer"; + break; + case TYPE_COLOR_ICON: + bitmap.Type = "Color Icon"; + break; + case TYPE_COLOR_POINTER: + bitmap.Type = "Color Pointer"; + break; + default: return null; + } + + const int VISIBLE = -16777216; + int[] argbPalette = new int[palette.Count]; + + for(int c = 0; c < palette.Count; c++) + argbPalette[c] = (palette[c].Red << 16) + (palette[c].Green << 8) + palette[c].Blue; + + long pos = 0; + + for(int y = 0; y < bitmap.Height; y++) + { + int x = 0; + while(x < bitmap.Width) + { + for(int k = (int)(8 - bitmap.BitsPerPixel); k >= 0; k -= (int)bitmap.BitsPerPixel) + { + bitmap.Pixels[y * bitmap.Width + x] = + argbPalette[(data[pos] >> k) & ((1 << (int)bitmap.BitsPerPixel) - 1)]; + x++; + } + + pos++; + } + + pos += pos % 2; + } + + // First image, then mask + if(header.Type == TYPE_ICON || header.Type == TYPE_POINTER) + { + int[] icon = new int[bitmap.Width * bitmap.Height / 2]; + int[] mask = new int[bitmap.Width * bitmap.Height / 2]; + Array.Copy(bitmap.Pixels, 0, icon, 0, icon.Length); + Array.Copy(bitmap.Pixels, icon.Length, mask, 0, mask.Length); + + bitmap.Pixels = new int[bitmap.Width * bitmap.Height / 2]; + bitmap.Height /= 2; + for(int px = 0; px < bitmap.Pixels.Length; px++) + bitmap.Pixels[px] = icon[px] + (mask[px] == argbPalette[0] ? VISIBLE : 0); + } + + // OS/2 coordinate 0,0 is lower,left, so need to reverse first all pixels then by line + int[] pixels = bitmap.Pixels.Reverse().ToArray(); + for(int y = 0; y < bitmap.Height; y++) + for(int x = 0; x < bitmap.Width; x++) + bitmap.Pixels[y * bitmap.Width + (bitmap.Width - x - 1)] = pixels[y * bitmap.Width + x]; + + return bitmap; + } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct BitmapArrayHeader + { + public ushort Type; + public uint Size; + public uint Next; + public ushort XDisplay; + public ushort YDisplay; + } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct BitmapInfoHeader + { + public ushort Type; + public uint Size; + public short XHotspot; + public short YHostpot; + public uint Offset; + public uint Fix; + public ushort X; + public ushort Y; + public ushort Planes; + public ushort BitsPerPlane; + } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct RGB + { + public byte Blue; + public byte Green; + public byte Red; + } + + public class DecodedBitmap + { + public uint BitsPerPixel; + public uint Height; + public int[] Pixels; + public string Type; + public uint Width; + public short XHotspot; + public short YHostpot; + } + } +} \ No newline at end of file diff --git a/libexeinfo/libexeinfo.csproj b/libexeinfo/libexeinfo.csproj index 69655d5..8400588 100644 --- a/libexeinfo/libexeinfo.csproj +++ b/libexeinfo/libexeinfo.csproj @@ -58,6 +58,7 @@ +