使用 Canvas+HTML5 将 rgb-jpg 客户端转换为 8-bit-jpg

2023-11-29

很多文章展示了在客户端使用canvas+html5将jpeg文件转换为灰度的方法。但我需要的是在上传到我的服务器之前将图像转换为 8 位灰度以减小其大小。

可以用canvas+html5来实现吗?


The 什么工作组规范提到了一个 toBlob 方法,该方法应该将画布转换为 jpeg 或 png 并为您提供二进制表示形式。不幸的是,它尚未得到广泛支持。

因此,您所能做的就是使用 getImageData 来获取原始图像数据的字节数组。在这个数组中,每个像素由 4 个字节表示:红色、绿色、蓝色和 alpha。您可以轻松地计算出灰度值(gray = (red + green + blue) / 3 * alpha / 255;)。但生成的数组将完全未压缩,因此它可能比原始 jpeg 更大,即使它每个像素仅使用 8 位。为了减小尺寸,您必须自己实现图像压缩算法。您可能会考虑使用PNG 使用的 DEFLATE 算法代替JPEG编码- 它更容易实现,不会引入更多的伪影,因为它是无损的,并且在 8 位图像上表现良好。

应将用于将此压缩数据流转换为有效 PNG/JPEG 文件的样板数据添加到服务器上(当您需要时)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Canvas+HTML5 将 rgb-jpg 客户端转换为 8-bit-jpg 的相关文章

  • 如何在 Python 中使用 PIL 将一张图像合成到另一张图像上?

    我需要拍摄一张图像并将其放置到新生成的白色背景上 以便将其转换为可下载的桌面壁纸 所以这个过程是这样的 生成尺寸为 1440x900 的新的全白图像 将现有图像放在顶部居中 另存为单张图像 在 PIL 中 我看到ImageDraw对象 但没
  • MATLAB 图像锐化 - 使用(1-高斯低通滤波器)的高斯高通滤波器

    我试图通过设计高斯高通滤波器来锐化图像 我想利用高通滤波器相当于单位矩阵减去低通滤波器的事实来做到这一点 所以我执行了以下操作 image imread Question3 Data Cats jpg read image H 1 fspe
  • 如何检测图像中对象的实例?

    我有一张包含几个特定对象的图像 我想检测这些物体在该图像中的位置 为此 我有一些模型图像 其中包含我想要检测的对象 这些图像在我想要检测的对象实例周围得到了很好的裁剪 这是一个例子 在这张大图里 我想检测此模型图像中表示的对象 自从你最初发
  • 在 iPad 上使用 OpenCV 避免碰撞

    我正在开展一个项目 需要使用 OpenCV 实现碰撞避免 这是在 iOS 上完成的 iOS 5 及以上版本即可 项目目标 这个想法是将 iPad 安装在汽车仪表板上并启动应用程序 应用程序应该从相机中抓取帧并进行处理 以检测汽车是否会与任何
  • 在opencv中发现凸性缺陷? [根据给定的输入图像崩溃..]

    我有一个计算图像凸包的程序 我正在尝试使用此信息来计算fingers存在于输入图像中 从一些冲浪中我发现做到这一点的方法 数手指 是 寻找轮廓 凸包 凸性缺陷 但我在使用凸性缺陷函数时遇到了麻烦 它编译得很好 但在运行时程序会因某些输入图像
  • EaselJS:使用线连接 2 个容器/形状

    我希望能够单击一个容器 形状 当我移动鼠标时 会绘制一条可以连接到另一个容器 形状 一端有箭头 的线 理想情况下 我希望这条线捕捉到目标元素 我是 EaselJS 的新手 我不知道如何解决这个问题 这是我在这里遇到的关闭 我无法理解它 使用
  • 我可以使用 vh 和 vw 指定画布尺寸吗?

    我的代码是 var canvas document getElementById canvas ctx canvas getContext 2d ctx canvas width 40vw ctx canvas height 40vh 但它
  • 白色像素簇提取

    我正在研究指纹毛孔提取项目 并陷入毛孔 白色像素簇 提取的最后阶段 我有两个输出图像 我们可以从中获取毛孔 但不知道该怎么做 这两个图像的尺寸不同 image1 的尺寸为 240 320 image2 的尺寸为 230 310 这是我的图像
  • 从 url 加载图像并绘制到 HTML5 Canvas

    我在从 javascript 中的 url 加载图像时遇到问题 下面的代码可以工作 但我不想从 html 加载图像 我想使用纯 JavaScript 从 url 加载图像 var c document getElementById myCa
  • addEventListener keydown 不起作用

    我在互联网上找到了一些基本的 Pong 代码 并尝试添加按键 代码在这里 http cssdeck com labs ping pong game tutorial with html5 canvas and sounds http css
  • Tesseract 是否会忽略扫描文档中的任何非文本区域?

    我正在使用 Tesseract 但我不知道它是否忽略任何非文本区域并仅针对文本 我是否必须删除任何非文本区域作为预处理步骤以获得更好的输出 Tesseract 有一个非常好的算法来检测文本 但它最终会给出误报匹配 理想情况下 您应该在将图像
  • HTML5 画布将颜色应用于形状重叠的图像

    我将此图像绘制到 HTML5 画布上 我想做的就是只给它的一部分应用颜色 我想要应用颜色的部分由以下覆盖图像定义 所以 基本上 我想通过叠加来指导我的着色 因此 在覆盖像素与主图像像素相遇的地方 我应该在主图像上应用颜色 至少我认为它是这样
  • 使用 ffmpeg 或 OpenCV 处理原始图像

    看完之后维基百科页面 http en wikipedia org wiki Raw image format原始图像格式 是任何图像的数字负片 为了查看或打印 相机图像传感器的输出具有 进行处理 即转换为照片渲染 场景 然后以标准光栅图形格
  • 如何使用 EMGU 计算 DFT 及其逆函数?

    如何计算图像的 DFT 使用 EMGU 显示它 然后计算反向值以返回原始图像 我将在这里回答我自己的问题 因为我花了一段时间才弄清楚 To test that it works here s an image and here s the
  • 在 Python 中倾斜数组

    我有一个 2D 数组 我将使用它保存为灰度图像scipy misc toimage 在此之前 我想将图像倾斜给定角度 像这样进行插值scipy ndimage interpolation rotate 上图只是为了说明倾斜过程 我知道我必须
  • 无需画布/显示器即可拍摄隐形 WebRTC/视频照片

    我读了拍摄静态照片 https developer mozilla org en US docs Web API WebRTC API Taking still photos来自 MDN 的描述如何从网络摄像头捕获照片 使用视频元素和med
  • Matlab颜色检测

    我试图一致地检测同一场景的图像之间的某种颜色 这个想法是根据颜色配置文件识别一组对象 因此 例如 如果给我一个带有绿色球的场景 并且我选择绿色作为我的调色板的一部分 我想要一个具有反映它检测到球的矩阵的函数 任何人都可以为这个项目推荐一些
  • 识别相似图像的库

    我想确定 2 张图像的相似程度 图像可能已被缩放 裁剪等 因此简单的像素比较将不起作用 我环顾四周 有很多关于这个主题的学术论文 但他们没有发布他们的代码 那么 您知道有一个可以比较图像的已发布库 适用于 Linux 和 Windows 吗
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • 使用 Numpy 进行多维批量图像卷积

    在图像处理和分类网络中 一个常见的任务是输入图像与一些固定滤波器的卷积或互相关 例如 在卷积神经网络 CNN 中 这是一种极其常见的操作 我已将通用版本任务减少为 Given 一批 N 个图像 N H W D 和一组 K 个滤镜 K H W

随机推荐

  • 如何设置非标准 gstreamer 属性的类型?

    我正在尝试设置pattern财产为videotestsrc 按照正常逻辑 我尝试将变量设置为i32和一根绳子 两者都会失败并出现要求特定类型的错误 查看 gstreamer API 我找不到设置该属性的方法 如何强制变量的类型与预期匹配 l
  • 为什么需要 Swing Utilities 以及如何使用它?

    这主要是针对我的问题here 但我不明白为什么摇摆实用程序是否需要以及它的用途 我正在设计一个 Swing GUI 我不想错过 Swing Utilities 可能提供的任何功能 也有人可以解释一下是什么invokeLater方法的作用及其
  • 如何判断图像何时已在 IE9 的浏览器缓存中?

    IE9显示错误complete具有以下属性 img src http farm2 static flickr com 1104 1434841504 edc671e65c jpg each function console log this
  • 将整数转换为工作日列表

    我在数据库中存储了一个整数 SQLAgent 频率间隔 该整数实际上是计划运行的一周中选定天数的总和 可能的值是这些值的任意组合 周日 1 星期一 2 星期二 4 星期三 8 星期四 16 星期五 32 星期六 64 ex 65 表示该计划
  • 计算字典中的值

    我有一本字典如下 dictA a duck duck goose b goose goose c duck duck duck d goose e duck duck 我希望循环遍历 dictA 并输出一个列表 该列表将向我显示 dictA
  • 从 SceneDelegate 更新屏幕结构的状态

    我来自 React Native 是 Swift 和 SwiftUI 的初学者 我很好奇当应用程序返回前台时如何在特定屏幕上执行操作并更新状态 我想检查通知的状态 允许 拒绝 等 并更新用户界面 这是一些示例代码 这是我要更新的视图 str
  • 在编译时展开循环

    我想将大量行写入以下形式的 C 文件中foo i for i 0 1 n 有没有办法在编译时执行此操作 我想这样做是因为我有一个模板类 template
  • 使用 AWS 弹性负载均衡器和 Nginx 将非 www 转换为 www

    我有一个在 example com 上运行的应用程序 现在我想将所有流量重定向到 www example com 因为我们正在与 Akamai 的 CDN 合作开发您的网站 我的域名停放在 Route53 中 添加了 Elastic Loa
  • 设置 ZF2 中的 (404) 错误页面使用的布局变量

    目前 我使用 BaseController 的 onDispatch 方法 我的所有其他控制器都扩展了该方法 设置了应用程序的整体布局 phtml 使用的几个变量 public function onDispatch MvcEvent e
  • Android NDK 中的文件操作

    出于性能原因 我使用 Android NDK 主要用 C 语言制作应用程序 但似乎 fopen 等文件操作在 Android 中无法正常工作 每当我尝试使用这些功能时 应用程序就会崩溃 如何使用 Android NDK 创建 写入文件 其他
  • 如何将 pandas 中的制表符分隔更改为逗号分隔

    我不知道这是否可能 我正在尝试将 12 个文件附加到一个文件中 其中一个文件以制表符分隔 其余文件以逗号分隔 我将所有 12 个文件加载到 dataframe 中 并循环将其一一附加到一个空 dataframe 中 list of file
  • 如何在R中对两个变量进行交叉制表?

    这似乎是基本的 但我不会明白 我正在尝试计算 R 中数据的频率表 如下所示 1 2 2 1 3 1 我想传输 csv 输出中的双向频率 其行将是数据 A 列中的所有唯一条目 其列将是数据 B 列中的所有唯一条目 单元格值将是这些值出现的次数
  • 托管在 Windows 服务中的 WCF 出现安全异常,即使它应该在完全信任下运行

    我们在 Windows 服务中托管 WCF 服务 NET 4 0 它在大多数机器上运行得很好 但在某些机器上它会抛出以下异常 错误 为 system serviceModel bindings 创建配置节处理程序时发生错误 该程序集不允许部
  • Python multiprocessing.pool 与类目标函数和神经进化的交互

    警告 这将是很长一段时间 因为我想尽可能具体 确切的问题 这是一个多重处理问题 我确保我的类都按照之前实验中构建 预期的方式运行 编辑 事先说过线程 当我在线程环境中运行问题的玩具示例时 一切正常 然而 当我转向真正的问题时 代码就崩溃了
  • Intent BOOT_COMPLETED 在华为设备上不起作用

    我想在我的 Android 应用程序中收听 APN 更改 因此我启动了一项服务android intent action BOOT COMPLETED 该服务启动一个 ContentObserver 来监听更改content telepho
  • 如何在构建定义的“流程”部分中刷新构建流程模板的更新参数?

    For a build process template 我们可以添加 删除 编辑它的参数列表 并将其用作构建 工作流程步骤中的变量 我读了很好的指南here 我正在克隆模板默认模板 11 1 xaml to sayHello Defaul
  • pyqt中QMenu的圆角

    我正在尝试覆盖paintEvent of QMenu使其具有圆角 上下文菜单应该看起来像这样 这是我尝试过的代码 但什么也没出现 from PyQt5 import QtWidgets QtGui QtCore import sys cla
  • 是否可以使用 javascript 获取从浏览器访问的上一页的 URL

    我在A页 现在我点击页面A并重定向到页面B 现在我点击页面B并重定向到页面A 这里我想知道页面B的url 我努力了document referrer但它不起作用 当用户单击链接导航到当前页面时 document referrer 会起作用
  • Elasticsearch - 使用 java api 删除嵌套对象不起作用

    我有一个 elasticsearch 文档 其中包含嵌套对象 我希望能够通过 java update api 删除它们 这是包含脚本的代码 UpdateRequest updateRequest new UpdateRequest INDE
  • 使用 Canvas+HTML5 将 rgb-jpg 客户端转换为 8-bit-jpg

    很多文章展示了在客户端使用canvas html5将jpeg文件转换为灰度的方法 但我需要的是在上传到我的服务器之前将图像转换为 8 位灰度以减小其大小 可以用canvas html5来实现吗 The 什么工作组规范提到了一个 toBlob