diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs | 20 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs | 10 |
2 files changed, 29 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs b/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs index d9b0eff..732781a 100644 --- a/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs +++ b/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Drawing; | ||
30 | using System.IO; | 31 | using System.IO; |
31 | using System.Reflection; | 32 | using System.Reflection; |
32 | using System.Text; | 33 | using System.Text; |
@@ -182,6 +183,25 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender | |||
182 | return DoJ2KDecode(assetID, j2kData, out layers, out components); | 183 | return DoJ2KDecode(assetID, j2kData, out layers, out components); |
183 | } | 184 | } |
184 | 185 | ||
186 | public Image DecodeToImage(byte[] j2kData) | ||
187 | { | ||
188 | if (m_useCSJ2K) | ||
189 | return J2kImage.FromBytes(j2kData); | ||
190 | else | ||
191 | { | ||
192 | ManagedImage mimage; | ||
193 | Image image; | ||
194 | if (OpenJPEG.DecodeToImage(j2kData, out mimage, out image)) | ||
195 | { | ||
196 | mimage = null; | ||
197 | return image; | ||
198 | } | ||
199 | else | ||
200 | return null; | ||
201 | } | ||
202 | } | ||
203 | |||
204 | |||
185 | #endregion IJ2KDecoder | 205 | #endregion IJ2KDecoder |
186 | 206 | ||
187 | /// <summary> | 207 | /// <summary> |
diff --git a/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs index 46d03b3..1cbd045 100644 --- a/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs +++ b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -25,6 +25,7 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System.Drawing; | ||
28 | using OpenMetaverse; | 29 | using OpenMetaverse; |
29 | using OpenMetaverse.Imaging; | 30 | using OpenMetaverse.Imaging; |
30 | 31 | ||
@@ -53,5 +54,12 @@ namespace OpenSim.Region.Framework.Interfaces | |||
53 | /// <param name="components">number of components</param> | 54 | /// <param name="components">number of components</param> |
54 | /// <returns>true if decode was successful. false otherwise.</returns> | 55 | /// <returns>true if decode was successful. false otherwise.</returns> |
55 | bool Decode(UUID assetID, byte[] j2kData, out OpenJPEG.J2KLayerInfo[] layers, out int components); | 56 | bool Decode(UUID assetID, byte[] j2kData, out OpenJPEG.J2KLayerInfo[] layers, out int components); |
57 | |||
58 | /// <summary> | ||
59 | /// Provides a synchronous decode direct to an image object | ||
60 | /// </summary> | ||
61 | /// <param name="j2kData"></param> | ||
62 | /// <returns>decoded image or 'null' of unsuccessful</returns> | ||
63 | Image DecodeToImage(byte[] j2kData); | ||
56 | } | 64 | } |
57 | } | 65 | } |