Experimental and likely broken OpenJpeg replacement

This commit is contained in:
Cinder
2021-06-29 17:28:02 -05:00
parent 87fff0475d
commit 4a1b646e3e
36 changed files with 2146 additions and 703 deletions

View File

@@ -5,6 +5,7 @@ using System.Collections.Generic;
using OpenMetaverse;
using OpenMetaverse.Imaging;
using OpenMetaverse.Assets;
using LibreMetaverse.Imaging;
namespace OpenMetaverse.TestClient
{
@@ -91,10 +92,14 @@ namespace OpenMetaverse.TestClient
File.WriteAllBytes(assetTexture.AssetID + ".jp2", assetTexture.AssetData);
Console.WriteLine("Wrote JPEG2000 image " + assetTexture.AssetID + ".jp2");
ManagedImage imgData;
OpenJPEG.DecodeToImage(assetTexture.AssetData, out imgData);
byte[] tgaFile = imgData.ExportTGA();
File.WriteAllBytes(assetTexture.AssetID + ".tga", tgaFile);
using (J2KReader reader = new J2KReader(assetTexture.AssetData))
{
reader.ReadHeader();
System.Drawing.Bitmap bitmap = reader.DecodeToBitmap();
ManagedImage imgData = new ManagedImage(bitmap);
byte[] tgaFile = imgData.ExportTGA();
File.WriteAllBytes(assetTexture.AssetID + ".tga", tgaFile);
}
Console.WriteLine("Wrote TGA image " + assetTexture.AssetID + ".tga");
}
catch (Exception e)

View File

@@ -77,7 +77,7 @@ namespace OpenMetaverse.TestClient
private byte[] LoadImage(string fileName)
{
byte[] UploadData;
byte[] UploadData = { };
string lowfilename = fileName.ToLower();
Bitmap bitmap = null;
@@ -85,22 +85,22 @@ namespace OpenMetaverse.TestClient
{
if (lowfilename.EndsWith(".jp2") || lowfilename.EndsWith(".j2c"))
{
Image image;
ManagedImage managedImage;
// Upload JPEG2000 images untouched
UploadData = System.IO.File.ReadAllBytes(fileName);
OpenJPEG.DecodeToImage(UploadData, out managedImage, out image);
bitmap = (Bitmap)image;
using (var reader = new LibreMetaverse.Imaging.J2KReader(UploadData))
{
reader.ReadHeader();
bitmap = reader.DecodeToBitmap();
}
}
else
{
if (lowfilename.EndsWith(".tga"))
if (lowfilename.EndsWith(".tga")) {
bitmap = LoadTGAClass.LoadTGA(fileName);
else
} else {
bitmap = (Bitmap)Image.FromFile(fileName);
}
int oldwidth = bitmap.Width;
int oldheight = bitmap.Height;
@@ -137,8 +137,11 @@ namespace OpenMetaverse.TestClient
bitmap.Dispose();
bitmap = resized;
}
UploadData = OpenJPEG.EncodeFromImage(bitmap, false);
using (var writer = new LibreMetaverse.Imaging.J2KWriter(UploadData))
{
writer.WriteHeader(new OpenJpegDotNet.IO.Parameter { Compression = 1 });
UploadData = writer.Encode(bitmap);
}
}
}
catch (Exception ex)

View File

@@ -24,6 +24,7 @@
<PostBuildEvent />
<IsPackable>false</IsPackable>
<TargetFrameworks>netcoreapp3.1;net50</TargetFrameworks>
<Platforms>AnyCPU;x64;x86</Platforms>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent />