笔记---图片的url链接和base64格式的转换

本文详细介绍了如何使用JavaScript、Ruby和Java进行图片URL到Base64编码的转换,以及Base64编码回原始图片格式的操作。在JavaScript中,通过canvas.toDataURL()方法解决跨域问题实现转换;在Ruby中,利用open-uri库轻松处理HTTP/FTP资源;Java部分则提供了相应的实现方案。
摘要由CSDN通过智能技术生成

1 js

1.1 图片的url转为base64编码

实现原理:
使用canvas.toDataURL()方法。需要解决图片跨域问题 image.crossOrigin = ‘’。

var img_url = 'https://......X.jpg'
var image = new Image()
image.crossOrigin = '' // 解决跨域问题
image.src = img_url
image.onload = function () {
    let canvas = document.createElement('canvas')
    canvas.width = image.width
    canvas.height = image.height
    let context = canvas.getContext('2d')
    // image.width、image.height调用时传入具体像素值,控制大小 ,不传则默认图像大小
    context.drawImage(image, 0, 0, image.width, image.height)
    let dataURL = canvas.toDataURL() // 得到图片的base64编码数据
    console.log(dataURL)
}

参考:
https://blog.csdn.net/weixin_40758850/article/details/102524683
链接

2 ruby

2.1 根据远程图片jpg/png的url,转换为base64图片格式

使用open-uri库,获取一个HTTP/FTP地址的内容。
open-uri库是ruby的标准附加库中所带的,路径是:lib/oepn-uri.rb。引用了该附加库后,就可以像打开普通文件那样打开一个http/ftp的uri的资源。

require 'open-uri'

def image_to_base64
	img_url = 'https://......X.jpg'
	tempfile = open(img_url){|f| f.read}
	logo_img = Base64.encode64(tempfile)
	return logo_img
end

2.2 图片的base64格式转换成jpg/png格式

def base64_to_image
    #注意: 要去掉base64_img 的base64的开头部分"data:image/png;base64,"
    img_base64 = "data:img/jpg;base64,iVBORw0KGgoAAAAN..."
    #img_base64 = img_base64["data:img/jpg;base64,".length..-1]
    img_base64 = img_base64.split(/[;:,]/)[3]
    tempfile = Tempfile.new("1.jpg")
    tempfile.binmode
    tempfile.write(Base64.decode64(img_base64))
    path = tempfile.path #临时文件的路径
    tempfile.close
    return path
 end

参考:
https://www.cnblogs.com/coderlee/archive/2008/04/18/1159454.html
https://ruby-china.org/topics/31976

3 java

java方式实现

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值