BufferedImage缓存图片(data:image/jpg;base64,)转换base64输出与解析

1、比如说二维码图片数据data,不想落地生成jpg文件,通过java缓存文件转换base64输出到页面展示,那么java后端处理写法参考如下:

          InputStream is = new ByteArrayInputStream(data);
                BufferedImage img = ImageIO.read(is);
                BufferedImage bi = new BufferedImage(IMG_WIDTH, IMG_WIDTH, BufferedImage.TYPE_INT_RGB);
                Graphics g = bi.getGraphics();
                g.drawImage(img, 0, 0, IMG_WIDTH, IMG_WIDTH, Color.LIGHT_GRAY, null);
                g.dispose();
                is.close();
                // bufferImage->base64
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                ImageIO.write(img, "jpg", outputStream);
                String base64Img = Base64Util.encode2Str(outputStream.toByteArray());
                res = "data:image/jpg;base64," + base64Img.toString();
                outputStream.close();

2、反过来,把页面上base64展示的图片,传递到java端解析出来的写法如下:

       request.setCharacterEncoding("utf-8");  //设置编码
             
            String s[] = src.split(",");
            byte[] src1 = Base64.decodeBase64(s[1]);
            ByteArrayInputStream inputStream = new ByteArrayInputStream(src1);
            BufferedImage bi = ImageIO.read(inputStream);
            String str = MatrixUtils.decode(bi);

原文地址:https://www.cnblogs.com/city-light/p/9528818.html

时间: 2024-10-31 00:52:13

BufferedImage缓存图片(data:image/jpg;base64,)转换base64输出与解析的相关文章

图片和base64编码字符串 互相转换,图片和byte数组互相转换

图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * @author lishupeng * @create 2017-05-06 下午 2:56 **/ public class Base64Test { public static void main(String[] args) { String strImg = GetImageSt

图片压缩base64转换 文字base64加密 上传图片会用到

// 3.图片base64转换     // 先获取压缩图片     UIImage *compressionImage = [selforiginImage:_profileImageView.imagescaleToSize:CGSizeMake(120, 120)];     // 再转换图片     NSData *data = UIImageJPEGRepresentation(compressionImage, 1.0f);     NSString *encodedImageStr

减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

原文:减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术) 在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”,那么,这一篇博文将讲解  “ 将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片”. 一.为何选择将图片转成二进制并生成Base64编码,可以在网页中通过url查看

检测SDWebImage有没有缓存图片 IOS 获取网络图片大小

NSURL *url = [NSURL URLWithString:[model.content objectForKey:@"image"]];             //请求网络地址数据的同步方法             //因为这个方法在子线程(全局队列)中执行,所以不需要考虑死线程的问题             SDWebImageManager *manager = [SDWebImageManager sharedManager];              [manag

Android之简单了解Bitmap显示图片及缓存图片

昨天我们学了如何连接网络,今天我们就学习一下如何从把网上图片显示到项目中 今天主要用到的是Bitmap 类 Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件 具体作用属性参考官方API: https://msdn.microsoft.com/zh-cn/library/system.drawing.bitmap(v=vs.110).aspx 不多说,看案例吧 做一个图片显示器: activity_ma

DES加密+Base64转换

package httpVisit.action; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.IvParameterSpec; import sun.misc.BASE64Decoder; import sun.misc.B

iOS网络编程(三) 异步加载及缓存图片---->SDWebImage

@SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https://github.com/rs/SDWebImage 下载SDWebImage开源包2.将类包拖入工程,再导入MapKit.framework.ImageIO.framework两个框架3.SDWebImage是支持ARC的,在MRC的工程中要注意,可参考MRC工程配置ARC4.注意:SDWebImag

使用Android新式LruCache缓存图片,基于线程池异步加载图片

import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import a

NSString与Base64转换

// 转换成base64编码, string明文字符串 NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSString *stringBase64 = [data base64Encoding]; // base64格式的字符串 // 由base64转成明文 NSData *data = [[NSData alloc] initWithBase64EncodedString:stringBase64 options