- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找出如何使用 FJCore 将 WriteableBitmap 编码为 jpeg。我知道 WriteableBitmap 提供了原始像素,但我不确定如何将其转换为 FJCore 对其 JpegEncoder 方法所期望的格式。 JpegEncoder 有两种重载,一种采用 FluxJpeg.Core.Image,另一种采用 DecodedJpeg。
我试图创建一个 FluxJpeg.Core.Image 但它需要一个 byte[][,] 图像数据。 byte[n][x,y] 其中 x 是宽度,y 是高度,但我不知道 n 应该是什么。
我认为 n 应该是 4,因为这将对应于每个像素中编码的 argb 信息,但是当我尝试时 FJCore 抛出一个参数超出范围异常。这是我尝试过的。 Raster 是我的 byte[4][x,y] 数组。
raster[0][x, y] = (byte)((pixel >> 24) & 0xFF);
raster[1][x, y] = (byte)((pixel >> 16) & 0xFF);
raster[2][x, y] = (byte)((pixel >> 8) & 0xFF);
raster[3][x, y] = (byte)(pixel & 0xFF);
最佳答案
弄清楚了!我下载了 FJCore from code.google.com并通过图像类。它只需要 RGB 字节。这是我写的函数。我需要图像的 base64 版本,这就是我的函数返回的内容。
private static string GetBase64Jpg(WriteableBitmap bitmap)
{
int width = bitmap.PixelWidth;
int height = bitmap.PixelHeight;
int bands = 3;
byte[][,] raster = new byte[bands][,];
for (int i = 0; i < bands; i++)
{
raster[i] = new byte[width, height];
}
for (int row = 0; row < height; row++)
{
for (int column = 0; column < width; column++)
{
int pixel = bitmap.Pixels[width * row + column];
raster[0][column, row] = (byte)(pixel >> 16);
raster[1][column, row] = (byte)(pixel >> 8);
raster[2][column, row] = (byte)pixel;
}
}
ColorModel model = new ColorModel { colorspace = ColorSpace.RGB };
FluxJpeg.Core.Image img = new FluxJpeg.Core.Image(model, raster);
MemoryStream stream = new MemoryStream();
JpegEncoder encoder = new JpegEncoder(img, 90, stream);
encoder.Encode();
stream.Seek(0, SeekOrigin.Begin);
byte[] binaryData = new Byte[stream.Length];
long bytesRead = stream.Read(binaryData, 0, (int)stream.Length);
string base64String =
System.Convert.ToBase64String(binaryData,
0,
binaryData.Length);
return base64String;
}
关于silverlight - 使用 FJCore 对 Silverlight WriteableBitmap 进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1139200/
我试图找出如何使用 FJCore 将 WriteableBitmap 编码为 jpeg。我知道 WriteableBitmap 提供了原始像素,但我不确定如何将其转换为 FJCore 对其 JpegE
在我的 C# Silverlight 应用程序中,我尝试使用 FJCore 以压缩的 JPEG 传输语法解码 DICOM 图像。类库。 DICOM 图像通常以 12 位精度压缩。当尝试使用原始 FJC
我是一名优秀的程序员,十分优秀!