其他分享
首页 > 其他分享> > 笔记---图片的url链接和base64格式的转换

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

作者:互联网

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方式实现

标签:canvas,img,url,image,base64,jpg,---,tempfile
来源: https://blog.csdn.net/weixin_47709232/article/details/117320036