aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs')
-rw-r--r--OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs28
1 files changed, 18 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
index cd46276..3921bf9 100644
--- a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
+++ b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs
@@ -59,7 +59,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders
59 /// <returns>A terrain channel generated from the image.</returns> 59 /// <returns>A terrain channel generated from the image.</returns>
60 public virtual ITerrainChannel LoadFile(string filename) 60 public virtual ITerrainChannel LoadFile(string filename)
61 { 61 {
62 return LoadBitmap(new Bitmap(filename)); 62 using (Bitmap b = new Bitmap(filename))
63 return LoadBitmap(b);
63 } 64 }
64 65
65 public virtual ITerrainChannel LoadFile(string filename, int offsetX, int offsetY, int fileWidth, int fileHeight, int w, int h) 66 public virtual ITerrainChannel LoadFile(string filename, int offsetX, int offsetY, int fileWidth, int fileHeight, int w, int h)
@@ -75,13 +76,15 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders
75 retval[x, y] = bitmap.GetPixel(offsetX * retval.Width + x, (bitmap.Height - (retval.Height * (offsetY + 1))) + retval.Height - y - 1).GetBrightness() * 128; 76 retval[x, y] = bitmap.GetPixel(offsetX * retval.Width + x, (bitmap.Height - (retval.Height * (offsetY + 1))) + retval.Height - y - 1).GetBrightness() * 128;
76 } 77 }
77 } 78 }
79
78 return retval; 80 return retval;
79 } 81 }
80 } 82 }
81 83
82 public virtual ITerrainChannel LoadStream(Stream stream) 84 public virtual ITerrainChannel LoadStream(Stream stream)
83 { 85 {
84 return LoadBitmap(new Bitmap(stream)); 86 using (Bitmap b = new Bitmap(stream))
87 return LoadBitmap(b);
85 } 88 }
86 89
87 protected virtual ITerrainChannel LoadBitmap(Bitmap bitmap) 90 protected virtual ITerrainChannel LoadBitmap(Bitmap bitmap)
@@ -227,16 +230,21 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders
227 /// <returns>A System.Drawing.Bitmap containing a coloured image</returns> 230 /// <returns>A System.Drawing.Bitmap containing a coloured image</returns>
228 protected static Bitmap CreateBitmapFromMap(ITerrainChannel map) 231 protected static Bitmap CreateBitmapFromMap(ITerrainChannel map)
229 { 232 {
230 Bitmap gradientmapLd = new Bitmap("defaultstripe.png"); 233 int pallete;
231 234 Bitmap bmp;
232 int pallete = gradientmapLd.Height; 235 Color[] colours;
233
234 Bitmap bmp = new Bitmap(map.Width, map.Height);
235 Color[] colours = new Color[pallete];
236 236
237 for (int i = 0; i < pallete; i++) 237 using (Bitmap gradientmapLd = new Bitmap("defaultstripe.png"))
238 { 238 {
239 colours[i] = gradientmapLd.GetPixel(0, i); 239 pallete = gradientmapLd.Height;
240
241 bmp = new Bitmap(map.Width, map.Height);
242 colours = new Color[pallete];
243
244 for (int i = 0; i < pallete; i++)
245 {
246 colours[i] = gradientmapLd.GetPixel(0, i);
247 }
240 } 248 }
241 249
242 for (int y = 0; y < map.Height; y++) 250 for (int y = 0; y < map.Height; y++)