文档章节

将64位图像编码转成JPEG图片

太黑_thj
 太黑_thj
发布于 2016/07/28 10:21
字数 346
阅读 32
收藏 0


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.plexus.util.Base64;
/**
 * 将64位图像编码转成图像
 * @author Administrator
 *
 */
public class Base64GenerateImapge {
	/**
	 * 生成图像
	 * @param imgStr
	 * @param imgFilePath
	 * @param suffix  图像的后缀
	 * @return
	 */
	public String GenerateImage(String imgStr,String imgFilePath,String suffix){
		if (imgStr.length()<1) // 图像数据为空
			return "无图像数据";
		if (imgFilePath.length()<1)//图像路径
			return "请传入文件路径";
		if (suffix.length()<1) //图像格式后缀
			return "请传入图像文件的后缀";
		Base64 base64=new Base64();
		byte[] b=base64.decodeBase64(imgStr.getBytes());
		for (int i = 0; i < b.length; ++i) {
			if (b[i] < 0) {// 调整异常数据
			b[i] += 256;
			}
		}
		// 生成jpeg图片
		String imgPath=imgFilePath+"."+suffix;
		try {
			OutputStream out = new FileOutputStream(imgPath);
			out.write(b);
			out.flush();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			return "图像生成失败";
		}
		return "图片生成成功,保存在"+imgPath;
	}
	/**
	 * 生成jpeg图像,返回图像路径
	 * @param imgStr
	 * @param imgFilePath
	 * @return
	 */
	public Map<String, String> GenerateImageJpeg(String imgStr,String imgFilePath){
		Map<String, String> map=new HashMap<String, String>();
		if (imgStr.length()<1){ // 图像数据为空
			map.put("错误", "无图像数据");
			return map;
		}	
		if (imgFilePath.length()<1){//图像路径
			map.put("错误", "请传入要保存图像的路径");
			return map;
		}	
		Base64 base64=new Base64();
		byte[] b=base64.decodeBase64(imgStr.getBytes());
		for (int i = 0; i < b.length; ++i) {
			if (b[i] < 0) {// 调整异常数据
				b[i] += 256;
			}
		}
		// 生成jpeg图片
		try {
			Date date=new Date();
			long time=date.getTime();
			String imgPath=imgFilePath+time+".jpeg";
			OutputStream out = new FileOutputStream(imgPath);
			out.write(b);
			out.flush();
			out.close();
			map.put("imgPath", imgPath);
		} catch (IOException e) {
			e.printStackTrace();
			map.put("错误", "请重新请求");
			return map;
		}
		map.put("成功", "图片路径在imgPath");
		return map;
	}

}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: mysql 触发器
下一篇: DOM4J 解析XML
太黑_thj
粉丝 14
博文 124
码字总数 65057
作品 0
福州
程序员
私信 提问
用深度学习设计图像视频压缩算法:更简洁、更强大

雷锋网(公众号:雷锋网) AI 科技评论按,本文为图鸭科技投稿,正文内容如下: 说到图像压缩算法,最典型的就是 JPEG、JPEG2000 等。 图 1:典型图像压缩算法 JPEG、JPEG2000 其中 JPEG 采用的...

思颖
2018/01/10
0
0
HTML5 实现手机拍照上传

背景:移动端H5项目,需要实现调用手机拍照,并将图片压缩上传功能。 页面样式: 上传图片有原生的方法<input type="file" accept="image/*">,如果只想要拍照上传,不希望用户选择图片上传,...

Reya滴水心
2016/06/24
14.6K
22
Java对于Image转码和解码以及图片旋转的方法demo(搜集资料整合)

public static String GetImageStr(String imgFilePath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 byte[] data = null; // 读取图片字节数组 try { InputStream in =...

qq_34952021
2018/04/20
0
0
GIF/PNG/JPG和WEBP/base64/apng图片优点和缺点整理

 GIF/PNG/JPG/WEBP/APNG都是属于位图(位图 ,务必区别于矢量图);  GIF/PNG和JPG这三种格式的图片被广泛应用在现今的互联网中,gif曾在过去互联网初期慢速的情况下几乎是做到了大一统的地位...

凡尘里的一根葱
2015/10/01
604
0
从零开始手敲次世代游戏引擎(JPEG特别篇)-2

接从零开始手敲次世代游戏引擎(JPEG特别篇)-1。 (首先说一下,这篇会非常难看。但是如果动手去做了,会对各项能力有极大的提高) 我们现在有了核心的算法库,接下来就是实际读取JPEG文件并...

陈文礼
2017/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

商品详情页上拉查看详情

商品详情页上拉查看详情 目录介绍 01.该库介绍 02.效果展示 03.如何使用 04.注意要点 05.优化问题 06.部分代码逻辑 07.参考案例 01.该库介绍 模仿淘宝、京东、考拉等商品详情页分页加载的UI效...

潇湘剑雨
19分钟前
0
0
Netty内存池之PoolArena详解

PoolArena是Netty内存池中的一个核心容器,它的主要作用是对创建的一系列的PoolChunk和PoolSubpage进行管理,根据申请的不同内存大小将最终的申请动作委托给这两个子容器进行管理。整体上,P...

爱宝贝丶
24分钟前
1
0
Django使用Channels实现WebSocket--下篇

希望通过对这两篇文章的学习,能够对Channels有更加深入的了解,使用起来得心应手游刃有余 通过上一篇《Django使用Channels实现WebSocket--上篇》的学习应该对Channels的各种概念有了清晰的认...

运维咖啡吧
31分钟前
2
0
linux下设置定时执行shell脚本的示例

很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command...

阿锋zxf
34分钟前
3
0
介绍Kubernetes监控Heapster

什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS,Kubernetes有个出名的监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机...

xiangyunyan
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部