Canvas浏览器中下载图片

H5中强大的Canvas也可以用于在浏览器中下载图片


downloadImg () {
    let image = new Image();
    let canvas = document.createElement('canvas')
    image.onload = () => {
        canvas.width = image.width
        canvas.height = image.height
        const context = canvas.getContext('2d')
        context.drawImage(image,0,0,image.width,image.height)
        canvas.toBlob( (blob) => {
            let link = document.createElement('a');
            link.href = window.URL.createObjectURL(blob);
            link.download = this.imageName + '.jpg'; // 自定义图片名称
            link.click();  
        }, "image/jpeg");
    }
    // 解决跨域 canvas 污染问题
    image.setAttribute('crossOrigin','anonymous')
    image.src = this.imagePath // 可直接访问的图片路径
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Tkinter 库Canvas 组件来创建一个简单的图片浏览器。下面是一个示例代码,展示如何通过点击按钮来浏览多张图片: ```python import tkinter as tk from PIL import ImageTk, Image class ImageViewer: def __init__(self, root, image_paths): self.root = root self.image_paths = image_paths self.current_image_index = 0 # 创建 Canvas 组件 self.canvas = tk.Canvas(root, width=400, height=400) self.canvas.pack() # 显示第一张图片 self.display_image() # 创建按钮 prev_button = tk.Button(root, text="Previous", command=self.prev_image) prev_button.pack(side=tk.LEFT) next_button = tk.Button(root, text="Next", command=self.next_image) next_button.pack(side=tk.RIGHT) def display_image(self): # 清空 Canvas self.canvas.delete("all") # 打开当前图片 current_image = Image.open(self.image_paths[self.current_image_index]) # 调整图片大小以适应 Canvas 大小 width, height = current_image.size if width > 400 or height > 400: ratio = min(400/width, 400/height) width = int(width * ratio) height = int(height * ratio) current_image = current_image.resize((width, height), Image.ANTIALIAS) # 创建 ImageTk 对象并在 Canvas 显示 self.image_tk = ImageTk.PhotoImage(current_image) self.canvas.create_image(200, 200, anchor=tk.CENTER, image=self.image_tk) def prev_image(self): # 更新当前图片索引 self.current_image_index -= 1 if self.current_image_index < 0: self.current_image_index = len(self.image_paths) - 1 # 显示更新后的图片 self.display_image() def next_image(self): # 更新当前图片索引 self.current_image_index += 1 if self.current_image_index >= len(self.image_paths): self.current_image_index = 0 # 显示更新后的图片 self.display_image() # 图片文件路径列表 image_paths = ["image1.jpg", "image2.jpg", "image3.jpg"] # 创建根窗口 root = tk.Tk() # 创建 ImageViewer 实例 viewer = ImageViewer(root, image_paths) # 运行主循环 root.mainloop() ``` 你需要将 `image1.jpg`、`image2.jpg` 和 `image3.jpg` 替换为你自己的图片路径。这个示例代码,我们使用了 Pillow 库(`PIL`)来处理图片。在运行代码之前,确保已经安装了 Pillow 和 Tkinter。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值