问题标签 [jpeg]

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 投票
2 回答
4163 浏览

java - 读取 JPEG 图像并计算图像坐标

我想读取具有统一灰色背景的 JPEG 图像,上面有几个相同大小的彩色球。我想要一个可以拍摄这张照片并记录每个球坐标的程序。最好的方法是什么?

0 投票
15 回答
81223 浏览

java - 如何在 Java 中使用 JPEG 创建缩略图?

有人可以帮忙用一些代码为Java中的JPEG创建缩略图。

我是新来的,所以一步一步的解释将不胜感激。

0 投票
3 回答
1464 浏览

c# - 在 C# 中将 JPG 与 GDI 合并

我的场景:

  • 我有一张彩色背景图片 JPG。
  • 我在白色背景 JPG 上有一个黑色文本。
  • 两张图片大小相同(高度和宽度)

我想在彩色背景图像上覆盖黑色文本和白色背景的图像,即白色背景变得透明以查看其下方的彩色背景。

如何在 C# 中使用 GDI 执行此操作?

谢谢!

0 投票
3 回答
7738 浏览

c# - .NET 以与加载时相同的质量保存 jpeg

我有一个大炮数码相机,我将它设置为以超精细质量拍照,它会输出一个 3 兆大小的 .jpg 文件。如果我在 ASP.NET 中像这样加载它(这对于更改它的 dpi 分辨率或裁剪它或其他程序很有用)

然后我像这样再次保存它:

它输出一个大小只有 700KB 左右的 jpg。有质量损失。

我也尝试像这样保存它:

codecJpeg 在哪里

和封装:

这样可以保持尺寸(我也怀疑质量),但我是手动输入质量的。

我想问一下:

有没有办法在不硬编码质量值的情况下以与加载时相同的质量保存图像?

先感谢您

0 投票
1 回答
3194 浏览

.net - 在 C# / VB.NET 中将 EXIF 元数据从 TIF 复制到 JPEG

如果您能阐明这个问题,我将不胜感激。我有 2 张图像,一张是从带有元数据的 TIF 文件创建的,另一张是内存中的图像,将保存为 jpeg。然后我使用这个例程将 exif 元数据从第一个图像传输到第二个图像(即从从 tif 文件创建的图像到内存中的图像):

这工作得很好。所有 exif 项目均已成功复制。我通过在调试模式下使用手表确认了这一点。当您使用以下方法将 image2 保存为 jpeg 时,问题就来了:

然而,只有很少的 EXIF 属性与 image2 jpeg 文件一起保存,即只有相机型号和相机制造商。但是,如果我将 image2 保存为 TIF,则原始 tif 的所有属性都将存在。谁能解释这是为什么?

谢谢。

0 投票
6 回答
379 浏览

compression - 如果我将丢失压缩的文件重新保存(例如 JPEG),会不会有质量损失?

我经常想,如果我加载一个压缩的图像文件,编辑它并再次保存它,它会失去一些质量吗?如果我在保存时使用相同的质量等级怎么办,算法会以某种方式检测到文件已经被压缩为 JPEG,因此尝试再次压缩显示的表示没有意义?

始终保留原始文件(例如,PSD)并始终对其进行更改,然后将其保存为 JPEG 或我需要的任何文件会是一个更好的主意吗?

0 投票
2 回答
3453 浏览

c++ - 从内存中获取 jpeg 的大小(使用 GDI++ 转换)

这是我在这里的第一篇文章。我有个问题。我需要拍摄桌面截图,将其转换为 jpeg,将其存储在缓冲区中,然后对其进行操作并通过 Internet 发送。

我已经编写了使用 GetDC....和 ​​GDI+ 将 HBITMAP 转换为 jpeg 的代码。我现在遇到的问题是我不知道已保存到 IStream 中的 jpeg 的大小。这是将HBITMAP hBackBitmap引用的位图转换为jpeg并将其保存到pStream中的部分代码。我需要知道已将多少字节写入 pStream 以及如何使用 pStream(获取 PVOID 句柄):

我需要的是: 1.找出jpeg的大小,流中写入了多少字节 2.如何使用流。例如,我可以为流中的数据获取 PVOID 吗?

谢谢你。

0 投票
1 回答
2429 浏览

c# - 在 C# 中渲染图像序列以制作视频

我有一系列 jpg 图像,我正在捕获这些图像并将其渲染到屏幕上以创建视频。

我正在使用 JpegBitmapDecoder 从 MemoryStream 解压缩图像,并通过在 Image 控件上设置 Source 来呈现它。这似乎工作正常,但处理器开销相当高。图像为 1280x720,以 30fps 运行,我几乎无法跟上我的电脑(双核 2.8Ghz)。以更高的分辨率运行会导致我丢弃帧。我想尝试降低 CPU 利用率。

花费的大部分时间似乎都花在了解码上(仅在我的机器上进行解码的简单基准测试表明我可以解码大约 40fps)。有谁知道是否有更快的解码器可用(DirectX?DirectShow?我可以卸载到视频卡的东西?)

至于渲染,Image 控件似乎不是为这种类型的使用而设计的(实际上我很惊讶它完全起作用,我只是尝试了它,因为它很容易做到)。是否有另一种方法可以更快地渲染单个帧?

0 投票
2 回答
2653 浏览

jpeg - 在 BMP 到 JPEG 转换方面需要帮助

我正在编写一个 C++ 程序来将 BMP 图像转换为 JPEG。

这是我试图遵循的基本算法:

  1. 将 RGB 颜色空间转换为 Y,Cb,Cr..
  2. 将 Cb 和 Cr 向下采样 2(这意味着对于 2*2 的每个方形块有 4 个不同的 Y 值,但 1 个 Cb 和 1 个 Cr 值
  3. 将 DCT 应用于每个 8*8 像素的数据单元...
  4. 然后使用标准的 Cb 和 Cr 量化表对 DCT 系数进行量化。
  5. 做之字形排序。
  6. 使用霍夫曼编码分别对直流和交流系数进行编码。
  7. 写入正确的标头并将霍夫曼编码值写入文件...

我已经验证我正确地执行了上述操作,但我仍然遇到以下问题:

  • 生成的 JPEG 未正确显示。
  • 我制作了一个小的 8*8 24 位(颜色深度)bmp 文件,完全填充了颜色值 R=10 B=10 和 G=100...所有 64 个像素都是相同的颜色..
  • 我在每一步得到的数据如下......
    • BMP 标头大小为 40
    • 标头大小 40
    • 宽度 8
    • 身高 8
    • 飞机数量 1
    • 每像素位数 24
    • 图像尺寸 194
    • x 分辨率每米像素 2834
    • y 分辨率每米像素 2834
    • 颜色数 0
    • 小鬼颜色数 0
    • (R,B,G)=(10,10,100)的Y Cb Cr换算为(62,-29,-37)

所以让我们首先考虑 Y 分量。

Y 分量的 DCT 系数为:

在量化之后,对于 Y 分量,我得到的单个数据单元的锯齿形排序是这样的。

现在上述之字形顺序数组的霍夫曼编码为:

  • Y直流编码:00111110
  • Y ac 编码:1010(对于 ac 霍夫曼表(亮度 Y)EOB 值为 1010)
  • Cb和Cr分量的类似哈夫曼编码如下:
  • cb直流编码:11000010
  • cb ac 编码:01(对于 ac 霍夫曼表(色度 Cb,Cr)EOB 值为 01)
  • cr直流编码:110101110
  • cr 交流编码:01
  • 我得到的最终霍夫曼代码是:

    001111101010110000100111010111001 长度33

所以为了使它能被8整除,填充1就完成了。

这里每个 0 或 1 实际上是一个位,需要按原样存储在 JPEG 文件中,但由于我们不能逐位写入文件,因此总共取 8 位并转换为基数中的整数值10 并存储到一个 1 字节的字符中。

任何人都可以就我哪里出错提供任何建议吗?

0 投票
6 回答
10658 浏览

c# - 用图像文件创建视频?

我正在尝试从一个充满 jpeg 文件的文件夹中制作视频。我试过谷歌,每个人都被这个困住了。我已经下载了 WM SDK 和编码器,但从那一刻起我不知道他们的对象模型,我不能做太多事情。

这里有人有一些关于如何从充满 jpeg 的文件夹中创建 WMV 或 AVI 或 MPEG 视频文件的代码吗?(在 C# 中)

我可以在答案中看到,显然没有办法从 C# 中做到这一点,只能使用第三方。我会检查你的建议。