首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何下载具有css叠加效果的图片?

问如何下载具有css叠加效果的图片?
EN

Stack Overflow用户
提问于 2019-09-01 23:17:52
回答 1查看 324关注 0票数 0

我有一些我在相册中使用的图片。我使用HTML和CSS创建了一个图片库。我使用CSS效果将图片更改为黑白。现在我想下载具有CSS黑白效果的图片,但问题是当我下载它的时候。它给了我没有CSS黑白的原始图像。谁能告诉我如何下载图片后使用CSS效果?

代码语言:javascript
复制
<style>
img {
  -webkit-filter: grayscale(100%); /* convert image to black and white */
  filter: grayscale(100%);
}
</style>

<p>Convert the image to black and white:</p>

<img src="pineapple.jpg" alt="Pineapple" width="300" height="300">
EN

回答 1

Stack Overflow用户

发布于 2021-11-07 06:49:29

这是我使用的插件:DOM to Image library

如果您使用的是NPM:

代码语言:javascript
复制
npm install dom-to-image

然后导入,

代码语言:javascript
复制
import domtoimage from 'dom-to-image';

带有需要以图像形式下载的标记的HTML示例:

代码语言:javascript
复制
<div id="my-node">
    <img src="/assets/images/image.jpg"/>
</div>

<div class="btn-group">
    <button class="btn-primary" (click)="convertToPng()">Convert to PNG</button>
    <button class="btn-primary" (click)="convertToJpeg()">Convert to JPEG</button>
    <button class="btn-primary" (click)="downloadAsPng()">Download as PNG</button>
    <button class="btn-primary" (click)="downloadAsJpeg()">Download as JPEG</button>
</div>

使用CSS应用的示例过滤器:

代码语言:javascript
复制
img {
    filter: grayscale(100%);
  }

要转换为PNG的:

代码语言:javascript
复制
convertToPng(){
    let node = document.getElementById('my-node');
    domtoimage.toPng(node)
    .then(function (dataUrl) {
        var img = new Image();
        img.src = dataUrl;
        document.body.appendChild(img);
    })
    .catch(function (error) {
        console.error('oops, something went wrong!', error);
    });
  }

要转换为JPEG的:

代码语言:javascript
复制
convertToJpeg(){
    let node = document.getElementById('my-node');
    domtoimage.toJpeg(node)
    .then(function (dataUrl) {
        var img = new Image();
        img.src = dataUrl;
        document.body.appendChild(img);
    })
    .catch(function (error) {
        console.error('oops, something went wrong!', error);
    });
  }

要下载为PNG的:

代码语言:javascript
复制
downloadAsPng(){
    let node = document.getElementById('my-node');
    domtoimage.toPng(node)
    .then(function (dataUrl) {
        var link = document.createElement('a');
        link.download = 'my-image-name.png';
        link.href = dataUrl;
        link.click();
    });
  }

下载为JPEG格式的:

代码语言:javascript
复制
 downloadAsJpeg(){
    let node = document.getElementById('my-node');
    domtoimage.toJpeg(node, { quality: 0.95 })
    .then(function (dataUrl) {
        var link = document.createElement('a');
        link.download = 'my-image-name.jpeg';
        link.href = dataUrl;
        link.click();
    });
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57747211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档