java后台通过IO流访问图片(带压缩代码)让前端显示图片
2018-08-15 16:46
363 查看
业务需求是两个不同的web程序放在不同的服务器上,web程序A要访问到web程序B上传上来的文件显示到页面上,所以用到了这一个IO读取图片的接口
Html代码
[code]//html img标签 两种方式 一种直接写死在src里这种不太灵活 另一种通过js赋值src 效果是一样的 <img class="image jsyysglimg" src="" height="120" alt="" id="ZP"> <img class="image jsyysglimg" src="http://localhost:8080/text/manage/query_pic?dz=E:/upload/indexfile/52b77290-0993-4a4d-b60c-2572953f2cc8.jpg" height="120" alt="" id="ZP2"> <script> //将想同部分写在一起,可以少写重复代码 var photoPath = "http://localhost:8080/text/manage/query_pic?"; //dz就是图片的地址 $("#ZP").attr("src", photoPath + "dz=E:/upload/indexfile/52b77290-0993-4a4d-b60c-2572953f2cc8.jpg"); </script>
JAVA代码
[code]import javax.imageio.ImageIO; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @Controller @RequestMapping(value = "/manage") public class ManageAction{ /** * 获取图片的方法 * @param request * @param response * @param dz 图片地址 * @return */ @RequestMapping(value = "/query_pic") @ResponseBody public void query_pic(HttpServletRequest request,HttpServletResponse response,@RequestParam("dz") String dz) { try { File pf = new File(dz); if (!pf.exists()) { return; } double rate = 1; //rate是压缩比率 1为原图 0.1为最模糊 int[] results = getImgWidth(pf); int widthdist = 0; int heightdist = 0; if (results == null || results[0] == 0 || results[1] == 0) { return; } else { widthdist = (int) (results[0] * rate); heightdist = (int) (results[1] * rate); } Image src = javax.imageio.ImageIO.read(pf); BufferedImage tag = new BufferedImage((int) widthdist, (int) heightdist, BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist, Image.SCALE_SMOOTH), 0, 0, null); ServletOutputStream fout = response.getOutputStream(); ImageIO.write(tag, "jpg", fout); fout.close(); } catch (Exception e) { //异常处理 } } public static int[] getImgWidth(File file) { InputStream is = null; BufferedImage src = null; int result[] = { 0, 0 }; try { is = new FileInputStream(file); src = javax.imageio.ImageIO.read(is); result[0] = src.getWidth(null); // 得到源图宽 result[1] = src.getHeight(null); // 得到源图高 is.close(); } catch (Exception e) { e.printStackTrace(); } return result; } }
效果图(因为是项目中筛选出来的代码 所以没有直接的效果图 我选了能体现这个功能的图片):
以上代码就到这里,如果有什么问题,欢迎大牛指点,后台代码是我组长教我的
阅读更多相关文章推荐
- Java通过IO流读取图片并显示在JSP页面上面
- Java把图片变成二进制,在通过前端显示出来
- web版用户通过浏览器下载图片java后台代码
- android webView中的html页面通过javascript访问java代码
- 实现选择下拉列表中时间而显示图片后台代码
- java中压缩图片的代码辅助类
- 基于ASP.NET提搞网站访问速度的优化后台代码与前端做哪些优化
- 使用Qt将一系列图片通过网络发送到客户端动态显示的参考代码(修改一下可以用作远程网络监控)。
- 带客户端脚本的图片控件,可利用后台代码修改图片显示(C#代码)
- java中压缩图片的代码辅助类
- jquery通过ajax-json访问java后台传递参数,通过request.getParameter获取不到参数的说明
- javat图片缩小代码(测试通过)
- 【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- 纯Java代码 图片压缩
- Android 网络显示图片 通过代理访问
- 通过JS获取用户本地图片路径并显示的代码
- JAVA操作SSL协议,通过Socket访问Https的程序代码例子
- Java 图片压缩实现思路及代码
- 路劲方法访问图片或文件的java代码
- (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字 - 流星絮语 JAVA学习笔记 - CSDNBlog