1、应用场景

开发过程中,遇到这样的需求:需要将服务器上的图片展现在页面上,但是图片所在服务器不是对外的,图片所在服务器与应用服务器也不在同一台机器上,这时候就需要在开发中先将图片读出来,返回给应用服务器,应用服务器再对读取的图片进行处理,并展现。

一般,我们在struts2中我们都会通过两次请求,来获取图片,有一次的请求是专用来获取图片的流。

Struts的配置如下:

<result type="stream"> <param name="contentType">image/jpeg</param>   <param name="inputName">inputStream</param>   <param name="contentDisposition">filename="struts-gif.zip"</param>   <param name="bufferSize">4096</param>
</result>

现在我们使用新的方式来获取图片,并展示。

2、读取图片

(a) 首先我们先读取图片,并编码;

public static String getImageStr(String path){File file = new File(path);if(file.exists()){InputStream inputStream = null;byte[] data = null;try {inputStream = new FileInputStream(file);data = new byte[inputStream.available()];inputStream.read(data);inputStream.close();} catch (Exception e) {e.printStackTrace();} BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}    else {return null;}}

(b) 服务交互部分使用的是hessian,略

(c) 页面的展现:

                                <td align="center" height="120" width="20%">图片:</td><td height="24" width="40%" align="center"><img id="imgObj" width="96" height="118" alt="y" src="data:image/gif;base64,<s:property value="photoStr"/>"/></td>

开发中使用了Struts2,展现的时候我们只需要让图片的src等于图片的base64的编码即可,不过切记编码必须和data:image/gif;base64,一起

转载于:https://www.cnblogs.com/kakag/p/3470083.html

图片的另一种展现—将后台图片编码直接展现为图片相关推荐

  1. DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率

    DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率 导读 上一篇文章,比较了三种算法实现对手写数字识别,其中,SVM和神经网络算法表现非 ...

  2. java 图片压缩100k_Java 实现图片压缩的两种方法

    问题背景. 典型的情景:Nemo社区中,用户上传的图片免不了要在某处给用户做展示. 如用户上传的头像,那么其他用户在浏览该用户信息的时候,就会需要回显头像信息了. 用户上传的原图可能由于清晰度较高而体 ...

  3. 前端的图片优化的6种方案

    前端的图片优化的6种方案 1.使用base64编码代替图片 场景:适用于图片大小小于2KB,页面上引用图片总数不多的情况 原理:将图片转换为base64编码字符串inline到页面或css中 优势:减 ...

  4. 批量打印--不展现直接后台打印

    批量打印--不展现直接后台打印(跳过手动触发打印) 实现效果: 客户经常想要实现多个报表批量打印(applet打印),并且不对报表进行展现(不手动点击打印触发),直接进行APPLET打印操作. 解决思 ...

  5. D3D中2D图片的绘制两种方法

    2014/09/19 (转载自:http://blog.csdn.net/rabbit729/article/details/6388703) 想要在D3D中加载2D图片可以使用如下两种方法(我只想到 ...

  6. vue样式 引入图片_详解Vue.js中引入图片路径的几种方式

    vue --version 3.6.3 记录总结一下的Vue中引入图片路径的几种书写方式 vue中静态资源的引入机制 Vue.js关于静态资源的官方文档 静态资源可以通过两种方式进行处理: 在 Jav ...

  7. matlab中单独存图_Matlab中图片保存的四种方法

    Matlab 中图片保存的四种方法 matlab 的绘图和可视化能力是不用多说的, 可以说在业内是家喻户晓的. Matlab 提供了丰富 的绘图函数,比如 ez** 系类的简易绘图函数, surf . ...

  8. c# pictureBox1.Image的获得图片路径的三种方法 winform

    代码如下:c# pictureBox1.Image的获得图片路径的三种方法 winform 1.绝对路径: this.pictureBox2.Image=Image.FromFile("D: ...

  9. qt 加载 图片旋转_QT 实现图片旋转的两种方法

    第一种方案 使用 QPixmap 的 transformed 函数来实现旋转,这个函数默认是以图片中心为旋转点,不能设置旋转的中心点,使用如下: QMatrix matrix; matrix.rota ...

最新文章

  1. Scriptaculous创始人作序推荐——《Ajax实战:Prototype与Scriptaculous篇》
  2. php数组的奇数_用php输出一个数组中的偶数或奇数的方法
  3. 机器学习知识点(四)最小二乘法Java实现
  4. sql server browser启动不了_机器人、无人机惊艳亮相!内江市2020年“119”消防宣传月活动正式启动...
  5. 信息学奥赛一本通 1132:石头剪子布 | OpenJudge NOI 1.7 04
  6. 【剑指offer】5.二叉树的镜像和打印
  7. 上下文保存 中断_从操作系统(Windows)的角度讨论中断和异常机制
  8. 泛微协同办公平台E-cology9.0版本最全帮助文档
  9. [视频]AI 机器学习 深度学习 视频教程汇总
  10. numpy.dot()和x.dot(y)函数介绍和示例
  11. CentOS 配置 固定IP
  12. 计算机网络共享文件共享,终于发现如何取消计算机网络共享文件
  13. VB.Net几个函数split(),ubound(),lbound(),instr(),mid(),Format()与Round()
  14. MySQL必知必会(3)
  15. 中国境内哪个chatGPT最好用
  16. #!/usr/bin/env node 到底是什么
  17. emacs 使用汇总
  18. php中的nl2br函数,PHP nl2br()函数与示例
  19. php齐博cms,齐博CMS splitword.php后门解密
  20. jquery选择器中含有不含有空格的问题

热门文章

  1. mysql connector python linux_MySQL Connector/Python 安装、测试
  2. rtklib 天线相位中心_基于传输线匹配理论的OAM透射阵天线设计
  3. 全国计算机等级考试成绩查询陕西,陕西计算机等级考试成绩查询入口
  4. php编译7教程,PHP7 快速编译安装
  5. matlab减,matlab-线性代数 矩阵的加、减、乘、除
  6. 计算机导论简答芯片,吉大计算机 - 计算机导论简答题 (2011级)
  7. DASH流媒体MPD文件解析
  8. 少年郎,你为什么没有对象?是缺点“土味情话”
  9. GPU运行Tensorflow详细教程及错误解决
  10. python廖雪峰_【Python】python中实现多进程与多线程