当前位置: 首页 > 知识库问答 >
问题:

织物js或想象从图像中删除白色

夏侯自珍
2023-03-14

我遇到了这种情况,我很难在谷歌上搜索和解释。

我们公司在铝上打印照片,我们给顾客两种选择。

>

  • 第一个选择是将他们的图片打印在铝上,就像他们给我们的图片一样,所以如果图片有白色背景,图片就会用白色背景打印。就这么简单。

    第二种选择是,我们可以不使用白色打印他们的图片。而不是所有的“白色值”(

    我知道织物JS中有一个远程白色过滤器,它可以用透明的区域代替白色区域。但这不是我需要的。我需要一个织物JS过滤器、ImageMagick之类的东西或任何其他PHP或JS解决方案,可以将像素的“白色值”变成透明的。我知道这些东西对你们来说可能听起来很模糊,但让我试着这样解释:

    >

  • 如果我遇到一个白色像素,我需要让它透明。

    如果遇到灰色像素,我需要把它从白色和黑色的组合变成透明和黑色的组合。

    如果我得到一个交叉的彩色像素,我还需要将“白色值”变为透明。

    以下是我试图完成的滤镜/效果的前后示例:

    之前:

    后:

    如果你不明白我在问什么,请不要犹豫问我。

  • 共有2个答案

    公良莫希
    2023-03-14

    所以Fabric中有一个过滤器。js就是这样做的。

    http://fabricjs.com/docs/fabric.Image.filters.RemoveWhite.html

    var filter = new fabric.Image.filters.RemoveWhite({
      threshold: 40,
      distance: 140
    });
    image.filters.push(filter);
    image.applyFilters(canvas.renderAll.bind(canvas));
    
    沈飞翼
    2023-03-14

    我让它工作了。通过使用 YUV 色彩空间中的因子,我可以创建一个结构 JS 图像滤镜。

    为了得到我想要的结果,进行了大量的反复试验。因此,我没有(详细)的描述这是如何工作的。据我所知,我已经使用了YUV因子来获得(RGB)颜色的亮度。

    for (i = 0; i < iLen; i++) {
        for (j = 0; j < jLen; j++) {
          index = (i * 4) * jLen + (j * 4);
          var yuv = {};
          yuv.r = data[index] / 255 * 1 * 0.299;     
          yuv.g = data[index + 1] / 255 * 1 * 0.587; //we use the yuv formula constants
          yuv.b = data[index + 2] / 255 * 1 * 0.114; //to try to catch the Y (brightness)
          yuv.y = yuv.r + yuv.g + yuv.b;             //you can tweak this
          data[index + 3] = 350 - (yuv.y / 1 * 255); //by changing the first number after the "=" on this line!
        }
    }
    

    不知何故,通过弄乱最后一行的350,您可以改变透明度因子。

    很抱歉,无法详细解释此织物过滤器的工作原理。

     类似资料:
    • 问题内容: 如何删除JavaScript对象中或JavaScript对象中的所有属性? (问题与此数组类似) 问题答案: 您可以遍历对象: 如果您担心此属性删除不会使对象的proptype链运行起来,则还可以: 有关null与未定义的一些注意事项:

    • 我只是最近迁移一些旧的博客文章从一个网站到另一个。图像也已导入。然而,现在我的大多数图像返回404错误。 图片目前正在链接到/wp content/uploads/2018/05/image_name-800x600.jpg。我的问题是800x600是已添加的自定义图像大小。我尝试为800x600添加主题支持,然后使用“强制重新生成缩略图”WordPress插件重新生成缩略图。这似乎没有解决任何问

    • 我创建了一个JButton,如果我点击它,就会显示一张卡片。每次我点击这个按钮,下一张相同花色的牌就会出现,这个过程应该继续下去,直到所有13张相同花色的牌都显示出来。我在JLabel的ImageIcon上以图片的形式展示卡片。问题是,如果我想在同一个地方显示所有的牌,第一张牌不会从原来的位置移走,而是将其余的12张牌隐藏起来。这意味着每一张新牌,它应该被展示到它的前一张牌之下。我试图通过使用fr

    • 问题内容: 为了减小要在网站中使用的图像的大小,我将质量降低到80-85%。这样可以最大程度地减小图像尺寸。 为了进一步减小尺寸而不影响质量,我的朋友指出,相机的原始图像包含大量称为Exif info的元数据。由于无需为网站中的图像保留此Exif信息,因此我们可以将其删除。这将使尺寸进一步减小3-10 kB。 但是我无法在Python代码中找到合适的库来执行此操作。我已经浏览了相关问题并尝试了一些

    • 我正在尝试从数据库中删除记录,以及从服务器中删除该记录的上载图像。我在控制器中有这个功能。 取消链接(C:\xampp\htdocs\larapro\public\newuploads\ 如果我使用 它显示: 解除关联(C: mpp\htdocs\larapro\Public\ewaddads{1470667358.png}):无效参数 我只是想知道为什么链接中的x和n丢失了。

    • 问题内容: 我需要拍摄图像并经过一些处理将其保存。显示该图形时,它看起来不错,但是保存该图形后,在保存的图像周围有一些空白。我尝试过方法的选项,也没有用。编码: 我正在尝试通过在图上使用NetworkX绘制基本图形并将其保存。我意识到没有图它会起作用,但是当添加一个图时,在保存的图像周围会出现空白; 问题答案: 我不能说我确切知道我的“解决方案”为什么起作用或如何起作用,但是当我想将几个机翼截面的