问题标签 [fjcore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
13488 浏览

silverlight - 使用 FJCore 对 Silverlight WriteableBitmap 进行编码

我试图找出如何使用 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] 数组。

0 投票
1 回答
434 浏览

silverlight - FJCore 库中的 VsampFactor 和 HsampFactor

我一直在 Silverlight 项目中使用FJCore库来帮助进行一些实时图像处理,并且我试图弄清楚如何从库中获得更多的压缩和性能。现在,据我了解,JPEG 标准允许您指定色度子采样率(请参阅http://en.wikipedia.org/wiki/Chroma_subsamplinghttp://en.wikipedia.org/wiki/Jpeg);看来这应该在 FJCore 库中使用 HsampFactor 和 VsampFactor 数组来实现

但是,我很难弄清楚如何使用它们。在我看来,当前值应该代表 4:4:4 子采样(例如,根本没有子采样),如果我想获得 4:1:1 子采样,正确的值应该是这样的:

至少,这是其他类似库使用这些值的方式(例如,请参阅此处的 libjpeg 示例代码)。

但是,上述 {2, 1, 1} 的值以及我尝试过的除 {1, 1, 1} 之外的任何其他值集都不会产生清晰的图像。也不是,在查看代码时,它似乎不是这样写的。但是对于我的生活,我无法弄清楚 FJCore 代码实际上想要做什么。似乎它只是使用样本因子来重复它已经完成的操作——即,如果我不知道更好,我会说这是一个错误。但这是一个相当成熟的库,基于一些相当成熟的 Java 代码,所以如果是这样的话,我会感到惊讶。

有人对如何使用这些值来获得 4:2:2 或 4:1:1 色度二次采样有任何建议吗?

对于它的价值,这里是JpegEncoder类的相关代码:

请注意,在 i & j 循环中,它们不控制任何类型的像素跳跃:如果 HsampFactor[0] 设置为 2,它只是抓取两个块而不是一个块。

0 投票
1 回答
678 浏览

c# - 将 FJCore 与 Silverlight for Windows Phone 7 一起使用时的 FieldAccessException

我为 Silverlight 找到了这个很棒的库,它基本上是 libjpeg 的一个端口,所以我非常兴奋地去查看它。从 SVN 存储库 (http://fjcore.googlecode.com/svn/trunk/) 下载库后,我能够成功构建库并将 .DLL 的引用添加到我的 Windows Phone 7 项目中。成功构建我的 WP7 项目后,使用模拟器时,应用程序崩溃并出现我以前从未见过的错误:

FieldAccessException 未处理。- System.Reflection.Emit.OpCodes.Ldarg_1

原始代码中的 silverlight 示例运行良好。该示例打开一个“打开文件”对话框,并根据所选内容调整图像大小。不幸的是,我不能在我的 WP7 项目中使用相同的代码。WP7 类不支持“打开文件”对话框。该库仅使用通用 Stream 对象,因此我从 PhotoChooserTask Completed 事件传入 e.Result(一个 PhotoStream 对象)。

关于我为什么会收到此错误以及如何解决它的任何想法?

在我的 WP7 应用程序中调整图像大小是必要的。毕竟,谁愿意等待通过 3G 网络上传 5MP 图像?我知道我肯定不会。

谢谢!

更新 - 找到在应用程序线程(不是 UI 线程)上调整 WP7 上图像大小的解决方案

0 投票
2 回答
2150 浏览

silverlight - 我可以从哪里下载 FluxJpeg?

FluxJpeg(或 FJCore)的主页发生了什么变化?许多页面指向 http://code.google.com/p/fjcore/ ,但该页面截至今天(2011 年 6 月 28 日)没有可用的下载。

Q1) 我可以从哪里下载?

Q2) 有什么更好的吗?我需要一个可以从 Silverlight 4 使用的开源类来解码 JPEG,减小其大小(最好使用一些插值算法)并将其编码回 JPEG,以将文件上传到服务器。

非常感谢。

0 投票
1 回答
1660 浏览

c# - C#:使用 Silverlight FJCore 库以 12 位精度解码 JPEG 图像?

在我的 C# Silverlight 应用程序中,我尝试使用FJCore类库以压缩的 JPEG 传输语法解码 DICOM 图像。

DICOM 图像通常以 12 位精度压缩。当尝试使用原始 FJCore 源代码解码这样的图像时,我得到一个异常说“不支持的编解码器类型”,因为在原始 FJCore 实现中只有 SOF0(基线 DCT)和 SOF2(渐进式 DCT)帧开始标记是支持的。如果我将实现更改为也接受 SOF1 标记(扩展顺序 DCT)并将 SOF1 帧以与 SOF0 帧相同的方式处理,则图像被解码,但只考虑 8 位。

使用修改后的 FJCore 库解码后,典型的 12 位精度图像现在如下所示:

由 FJCore 编码为 8 位精度的 12 位精度 JPEG 图像

理想情况下,图像应如下所示:

12 位精度 JPEG 图像编码为全 12 位精度

据我从 FJCore 实现中可以看出,图像精度记录在 JpegFrame 类中,但从未使用过。最初的 FJCore 实现似乎只完全支持 8 位精度的灰度图像。

我计划“不顾一切”并尝试自己扩展 FJCore 以支持灰度图像的 12 位精度。但在我这样做之前,我想我应该在 StackOverflow 中提出这个问题,看看有没有人遇到过并解决过这个问题?在这种情况下,我很高兴了解您是如何解决问题的。

提前谢谢了!
安德斯@Cureos

0 投票
1 回答
75 浏览

c# - 如何将 FJCore 包含到现有项目中?

我认为这就像创建一个新文件夹、将源树复制粘贴到其中并从源文件中引用 lib 一样简单。但复制的文件不会显示在解决方案资源管理器侧边栏中的新文件夹下。显然还有更多。

我需要做什么才能完成这项工作?

0 投票
1 回答
400 浏览

c# - 在silverlight中将XAML元素转换为图像?

我有一个 XAML 画布元素,我需要将画布元素及其中的任何内容保存为任何高质量的图像格式(JPEG、PNG),如何使用 c# 在 silverlight 中做到这一点。我看到了 Fjcore 代码,但我不明白什么它在做什么,请用代码解释并评论它在做什么。