吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 585|回复: 4
收起左侧

[求助] JavaScript 有什么图片压缩或者提取差异化部分算法吗?

[复制链接]
ppgjx 发表于 2024-1-3 23:19
我想做个浏览器屏幕共享,使用websocket,无非就是截图+传送,但是图片太大了,我了解了一下微软的远程桌面,他好像只是传输两张图片的差异部分,但这个算法是怎么原理呢?

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cuiqiqi123 + 1 + 1 未能按照本版块发帖要求发帖,请仔细阅读加油本版块版规再发帖,谢谢理解!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

T4DNA 发表于 2024-1-3 23:21
d199212 发表于 2024-1-4 08:36
Vvvvvoid 发表于 2024-1-4 09:42
jasonz18 发表于 2024-1-4 09:53

Perceptual hashing 这种方法创建图像哈希值,让相似的图像具有相似的哈希。这样就可以比较两个图像的哈希值,确定它们之间的差异。随便写点代码实现:

// 计算dHash
function dhash(imageData, hashSize = 8) {
    // 将图像缩小为hashSize x (hashSize + 1)的尺寸,确保宽度为hashSize
    const resizedImageData = resizeImage(imageData, hashSize, hashSize + 1);

    // 将图像转换为灰度
    const grayImageData = convertToGrayscale(resizedImageData);

    // 计算像素差异
    const differences = calculateDifferences(grayImageData);

    // 生成哈希值
    const hash = generateHash(differences);

    return hash;
}

// 将图像缩小到指定尺寸
function resizeImage(imageData, width, height) {
    // 省略实现细节,可以使用canvas等方法进行图像缩放
    // 返回缩小后的图像数据
}

// 将图像转换为灰度
function convertToGrayscale(imageData) {
    // 省略实现细节,可以使用canvas等方法进行灰度转换
    // 返回灰度图像数据
}

// 计算相邻像素的差异
function calculateDifferences(imageData) {
    const differences = [];
    // 省略实现细节,计算相邻像素的差异并保存到数组中
    return differences;
}

// 生成哈希值
function generateHash(differences) {
    // 根据差异数组生成哈希值
    const hash = differences.map(diff => (diff < 0 ? '0' : '1')).join('');
    return hash;
}

// 示例用法
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');

// 假设有一个Image对象或者ImageData对象,你可以将其绘制到canvas上
// 并且使用getImageData获取图像数据
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);

// 计算哈希
const hash = dhash(imageData);

console.log('Perceptual hash:', hash);
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 16:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表