Second shot OpenJPEG native lib replacement

Mostly working, could use some fine tuning for unsupported images
This commit is contained in:
Cinder
2021-07-04 18:01:05 -05:00
parent 48455d63b0
commit 3c76a98f8e
37 changed files with 2781 additions and 1342 deletions

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,10 @@ namespace OpenMetaverse.TestClient
bitmap.Dispose();
bitmap = resized;
}
UploadData = OpenJPEG.EncodeFromImage(bitmap, false);
using (var writer = new LibreMetaverse.Imaging.J2KWriter(bitmap))
{
UploadData = writer.Encode();
}
}
}
catch (Exception ex)