From 73c4ee681716ef92ec5ea842eb4dcbcc57ef205a Mon Sep 17 00:00:00 2001 From: chrisf Date: Fri, 22 Jun 2007 09:19:39 +0000 Subject: [PATCH] git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1060 993157c7-ee19-0410-b2c4-bb4e9862e678 --- ImageDecode/ImageDecode.csproj | 1 + ImageDecode/Palette.cs | 33 +++++++++++++++++++++++++++++++++ ShpViewer/Program.cs | 1 + ShpViewer/ShpViewForm.cs | 6 ++++-- temperat.pal | Bin 0 -> 768 bytes tenticon.shp | Bin 0 -> 2562 bytes 6 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 ImageDecode/Palette.cs create mode 100644 temperat.pal create mode 100644 tenticon.shp diff --git a/ImageDecode/ImageDecode.csproj b/ImageDecode/ImageDecode.csproj index 4d0cf29896..cd461a8b92 100644 --- a/ImageDecode/ImageDecode.csproj +++ b/ImageDecode/ImageDecode.csproj @@ -40,6 +40,7 @@ + diff --git a/ImageDecode/Palette.cs b/ImageDecode/Palette.cs new file mode 100644 index 0000000000..5aa9f31fe9 --- /dev/null +++ b/ImageDecode/Palette.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Drawing; + +namespace ImageDecode +{ + public class Palette + { + List colors = new List(); + + public Color GetColor(int index) + { + return colors[index]; + } + + public Palette(Stream s) + { + using (BinaryReader reader = new BinaryReader(s)) + { + for (int i = 0; i < 256; i++) + { + byte r = (byte)(reader.ReadByte() << 2); + byte g = (byte)(reader.ReadByte() << 2); + byte b = (byte)(reader.ReadByte() << 2); + + colors.Add(Color.FromArgb(r, g, b)); + } + } + } + } +} diff --git a/ShpViewer/Program.cs b/ShpViewer/Program.cs index f18dc2c1f9..4fdb22aedd 100644 --- a/ShpViewer/Program.cs +++ b/ShpViewer/Program.cs @@ -20,6 +20,7 @@ namespace ShpViewer { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "SHP Files|*.shp"; + ofd.RestoreDirectory = true; if( ofd.ShowDialog() == DialogResult.OK ) Application.Run( new ShpViewForm( ofd.FileName ) ); } diff --git a/ShpViewer/ShpViewForm.cs b/ShpViewer/ShpViewForm.cs index 8c52754d70..2564d31beb 100644 --- a/ShpViewer/ShpViewForm.cs +++ b/ShpViewer/ShpViewForm.cs @@ -23,10 +23,12 @@ namespace ShpViewer { byte[] imageBytes = h.Image; - Bitmap bitmap = new System.Drawing.Bitmap( shpReader.Width, shpReader.Height ); + Palette pal = new Palette(File.OpenRead("../../../temperat.pal")); + + Bitmap bitmap = new Bitmap( shpReader.Width, shpReader.Height ); for( int x = 0 ; x < shpReader.Width ; x++ ) for( int y = 0 ; y < shpReader.Height ; y++ ) - bitmap.SetPixel( x, y, Color.FromArgb( imageBytes[ x + shpReader.Width * y ], 0, 0 ) ); + bitmap.SetPixel( x, y, pal.GetColor(imageBytes[ x + shpReader.Width * y ]) ); bitmaps.Add( bitmap ); } diff --git a/temperat.pal b/temperat.pal new file mode 100644 index 0000000000000000000000000000000000000000..bb63fcdd50490a6ace83199cf15196a1e551c57e GIT binary patch literal 768 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 NwTZ{^FCU%Q`5y_EJ9z*A literal 0 HcmV?d00001