Replace OpenJpegDotNet with CSJ2K.Skia which doesn't need native blobs

This commit is contained in:
Cinder Roxley
2024-08-01 18:56:53 -05:00
parent a1c91516b8
commit ccdae84ef5
6 changed files with 26 additions and 36 deletions

View File

@@ -29,7 +29,10 @@ using System;
using System.Text;
using System.IO;
using System.Collections.Generic;
using CSJ2K;
using OpenMetaverse.Assets;
using Pfim;
using SkiaSharp;
namespace OpenMetaverse.TestClient
{
@@ -114,15 +117,15 @@ namespace OpenMetaverse.TestClient
try
{
File.WriteAllBytes(assetTexture.AssetID + ".jp2", assetTexture.AssetData);
Console.WriteLine("Wrote JPEG2000 image " + assetTexture.AssetID + ".jp2");
Console.WriteLine($"Wrote JPEG2000 image {assetTexture.AssetID}.jp2");
using (var reader = new OpenJpegDotNet.IO.Reader(assetTexture.AssetData))
{
reader.ReadHeader();
OpenJpegDotNet.RawImage tga = reader.Decode().ToTarga();
File.WriteAllBytes(assetTexture.AssetID + ".tga", tga.Bytes);
}
Console.WriteLine("Wrote TGA image " + assetTexture.AssetID + ".tga");
// FIXME: Need to readd TARGA support!
//var bitmap = J2kImage.FromBytes(assetTexture.AssetData).As<SKBitmap>();
//var image = SKImage.FromPixels(bitmap.PeekPixels());
//var bytes = image.Encode(SKEncodedImageFormat.Tga, 100);
//File.WriteAllBytes(assetTexture.AssetID + ".tga", bytes.ToArray());
//
//Console.WriteLine($"Wrote TGA image {assetTexture.AssetID}.tga");
}
catch (Exception e)
{
@@ -131,7 +134,7 @@ namespace OpenMetaverse.TestClient
}
else
{
Console.WriteLine("Failed to download image " + assetTexture.AssetID);
Console.WriteLine($"Failed to download image {assetTexture.AssetID}");
}
OutfitAssets.Remove(assetTexture.AssetID);

View File

@@ -27,6 +27,7 @@
using System;
using System.Threading;
using CSJ2K;
using SkiaSharp;
namespace OpenMetaverse.TestClient
@@ -105,11 +106,7 @@ namespace OpenMetaverse.TestClient
// Upload JPEG2000 images untouched
uploadData = System.IO.File.ReadAllBytes(fileName);
using (var reader = new OpenJpegDotNet.IO.Reader(uploadData))
{
reader.ReadHeader();
bitmap = reader.DecodeToBitmap();
}
bitmap = J2kImage.FromBytes(uploadData).As<SKBitmap>();
}
else
{
@@ -153,11 +150,7 @@ namespace OpenMetaverse.TestClient
bitmap = SKBitmap.FromImage(scaledImage);
}
}
using (var writer = new OpenJpegDotNet.IO.Writer(bitmap))
{
uploadData = writer.Encode();
}
uploadData = J2kImage.ToBytes(J2kImage.CreateEncodableSource(bitmap));
}
catch (Exception ex)
{

View File

@@ -16,6 +16,7 @@
<ProjectReference Include="..\..\..\LibreMetaverse.Voice\LibreMetaverse.Voice.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Pfim" Version="0.11.2" />
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
</ItemGroup>
<ItemGroup>