From f93ed34fbe2cde1a4ae32d71d3a6bc1a0aac1fd8 Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Sun, 25 Apr 2010 03:40:09 +0000 Subject: [PATCH] Fixed 5 layer jpeg2000 decoding (alpha channel was moved from layer 5 to layer 4 in viewer 1.23 and newer). git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3302 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse/Imaging/OpenJPEG.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/OpenMetaverse/Imaging/OpenJPEG.cs b/OpenMetaverse/Imaging/OpenJPEG.cs index fdf8d769..56b48f24 100644 --- a/OpenMetaverse/Imaging/OpenJPEG.cs +++ b/OpenMetaverse/Imaging/OpenJPEG.cs @@ -336,15 +336,14 @@ namespace OpenMetaverse.Imaging Marshal.Copy((IntPtr)(marshalled.decoded.ToInt64() + (long)(n * 3)), managedImage.Alpha, 0, n); break; - case 5: // RGBBA + case 5: // RGBAB managedImage = new ManagedImage(marshalled.width, marshalled.height, ManagedImage.ImageChannels.Color | ManagedImage.ImageChannels.Alpha | ManagedImage.ImageChannels.Bump); Marshal.Copy(marshalled.decoded, managedImage.Red, 0, n); Marshal.Copy((IntPtr)(marshalled.decoded.ToInt64() + (long)n), managedImage.Green, 0, n); Marshal.Copy((IntPtr)(marshalled.decoded.ToInt64() + (long)(n * 2)), managedImage.Blue, 0, n); - // Bump comes before alpha in 5 channel encode - Marshal.Copy((IntPtr)(marshalled.decoded.ToInt64() + (long)(n * 3)), managedImage.Bump, 0, n); - Marshal.Copy((IntPtr)(marshalled.decoded.ToInt64() + (long)(n * 4)), managedImage.Alpha, 0, n); + Marshal.Copy((IntPtr)(marshalled.decoded.ToInt64() + (long)(n * 3)), managedImage.Alpha, 0, n); + Marshal.Copy((IntPtr)(marshalled.decoded.ToInt64() + (long)(n * 4)), managedImage.Bump, 0, n); break; default: