`
shangjava
  • 浏览: 1185523 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

服务器端图形处理

阅读更多
Java最初是以Applet等客户端图形处理为技术起点的,而本节讨论的是如何在Servlet/JSP中实现图形处理。
在Jive中,图片可以用来显示用户的头像,用户在上传自己头像图片时,该图片的大小可能不一,但是由于版面原因,显示的头像图片又有大小限制,那么就需要在用户上传图片时对图片大小做一个检查。如果超过规定大小,就进行一定的缩放处理。
缩放处理有两种方式:是在HTML显示时,使用image 语法的width和height来限制大小,但是这样做只是解决了表面问题,无法解决大字节图片传送到客户端带来的性能影响,这个图片因为是用户发言的头 像,将会在每个帖子里面显示。如果头像都是巨大图片,对帖子显示速度的影响是很大,因此必须在服务器端进行缩小后,再传送到客户端,这样提高了论坛系统性 能。
服务器端的图形处理需要使用到Java的图形处理技术,而且图形处理是在服务器端的Web容器中进行的。和以往Java在客户端进行图形处理稍微有所不同,相同的是都要使用计算机的底层图形支持资源。
J2SE 1.4提供新的增强的图形处理功能,JDK1.4中最新的javax.imageio.ImageIO对图片进行读写操作,而使用java.awt.geom.AffineTransform对图片进行尺寸缩放处理。
import java.io.File;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.awt.image.AffineTransformOp;
import javax.imageio.ImageIO;
import java.awt.geom.AffineTransform;
public class UploadImg{
/**
* 参数设置
* @param fromdir 图片的原始目录
* @param todir 处理后的图片存放目录
* @param imgfile 原始图片
* @param sysimgfile 处理后的图片文件名前缀
*/
public void init(String fromdir,String todir,String imgfile,String sysimgfile)
{
this.fromdir=fromdir;
this.todir=todir;
this.imgfile=imgfile;
this.sysimgfile=sysimgfile;
}
public boolean CreateThumbnail() throws Exception
{
//ext是图片的格式 gif、JPG 或png
String ext=""
double Ratio=0.0;
File oldFile = new File(fromdir,imgfile);
if (!F.isFile()) //检查是否存在此图片文件
throw new Exception(F+" is not image file error in CreateThumbnail!");
//首先判断上传的图片是gif还是JPG ImageIO,只能将gif转换为png
if (isJpg(imgfile)){
ext="jpg";
}else{
ext="png";
}
File newFile = new File(todir,sysimgfile+"."+ext);
BufferedImage Bi = ImageIO.read(oldFile); //读取原始图片
if ((Bi.getHeight()>120) || (Bi.getWidth()>120)){
if (Bi.getHeight()>Bi.getWidth())
Ratio = 120.0/Bi.getHeight();
else
Ratio = 120.0/Bi.getWidth();
}
//进行图片转换
AffineTransformOp op =
new AffineTransformOp(AffineTransform.getScaleInstance(Ratio, Ratio), null);
Image itemp = op.filter(Bi, null);
try { //写入转换后的图片
ImageIO.write((BufferedImage) itemp, ext, newFile);
}catch (Exception ex) {
throw new Exception(ex.getMessage());
}
return (true);
}
}
该类中由于使用到了Java 的AWT,虽然没有实际显示,但Linux系统下需要X11 Windows的支持(安装Linux时需安装 XFree86,Linux完全安装方式包括安装XFree86)。
该缩放功能是在图片上传到服务器后再进行的处理,可以对JPG进行缩小放大;对上传是GIF的图片,缩放后变成PNG图片格式文件
分享到:
评论

相关推荐

    图形用户界面.docx

    2) 掌握基本图形的绘制,可以使用不同颜色,字体,线条进行绘制 3) 掌握简单的事件处理机制 4) 掌握几种事件处理机制:鼠标事件、窗口事件 5) 掌握边缘布局管理器,流式布局管理器 6) 掌握几种基本的Swing组件 ...

    TrunQ:NPM软件包可轻松实现客户端和/或服务器端图形QL缓存

    TrunQ是由OS-labs开发的开源NPM软件包,提供了一种简单直观的实现,用于在客户端和/或服务器端存储上缓存GraphQL响应。 由Ben Ray,Brian Haller,Gordon Campbell和Michael Evans开发。 特征 TrunQ旨在为开发人员...

    2D网络游戏引擎的设计与实现

    花过多精力去处理系统架构、图形处理等一些底层的技术,可以直接使用引擎提供的 API来进行游戏开发,从而大大缩短游戏开发时间。 本文 通 过 对网络通信和图形处理方面的研究,设计并实现了一个具备消息处理和客 户...

    利用dwr实现图形的动态显示

    平时开发遇到的问题: 原来的applet技术:applet显示图形...利用ajax的dwr框架实现图形分析:读取数据/图形分析生成等全部的服务器端查询执行(包括sql语句,大量数据处理等), 最后返回给一个图形的路径,然后在客户端显示

    headless-mermaid:一个Mermaid.js处理程序,用于Node.js的服务器端呈现

    无头美人鱼一个处理程序,用于Node.js的服务器端呈现。为什么和什么mermaid.js需要使用浏览器来呈现图,这使得为服务器端应用程序呈现可伸缩矢量图形带来了挑战。 headless-mermaid利用headless-chromium渲染图形并...

    图形用户界面(Java/GUI):用户登陆界面-代码

    1.内容概要: 通过图形界面输入用户和密码,将用户名和密码发送到服务器端,...(4) 事件处理机制 (5)容器布局方式 (6)菜单(JMenu......) (7)GUI基本的继承体系 4.使用场景: 使用Java语言编写图形用户界面。

    java 聊天室

    (2)使用多线程处理套接字连接,把服务器端或客户端读取的数据放在一个单独的线程中去进行,防止服务器端或客户端读取数据可能引起的堵塞。服务器端收到一个客户的套接字后,应该启动一个专门为该客户服务的线程 ...

    webg3n:运行 g3n 服务器端的 3D 网络查看器

    webg3n webg3n 是一个运行作为服务器端 OpenGL 渲染器的 3D 网络查看器。这个怎么运作 webg3n是一个GO网络服务器,每个连接处理一个G3N渲染实例的套接字。 G3N 应用程序不断地流式传输图像 (jpeg) 并侦听来自客户端...

    大型多媒体视频会议服务器端和客户端源码VC

    本视频会议系统由服务器软件和客户端软件组成。 功能特性 1. 基于MPEG-4的多媒体技术:使用自行开发的基于MPEG-4标准的多媒体压缩技术,适应从64Kbps到宽带的网络环境。系统不仅可以提供流畅的语音,而且可以提供...

    java图形图象处理(论文+系统).zip

    然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。 JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成...

    PB中应用AutoCAD图形数据库

    Microsoft SQL Server6.5是基于Client/Server结构的数据库管理系统,在C/S结构的应用中,服务器端软件用于存储数据、处理数据请求、维护数据完 整性,而客户端软件 用于处理用户界面、生成数据请求、将返回结果显示...

    基于I/O、多线程、GUI的标准考试系统v1.0(JAVA实现)

    服务器端:该模块负责处理来自客户端的请求,通过对服务器上试卷,配置文件等相关文件的操作,对登录、索取试卷、退出等不同的请求,分别作出相应的处理。 后台管理端:用于管理员对考试相关的管理。取得管理员身份...

    基于java的围棋游戏-源代码.zip

    (3)客户端负责处理客户端显示和操作界面,具有简单的逻辑处理功能力, 同时负责接收发送与服务器端交互的数据包。 (4)服务器程序负方处理服务器端逻辑、游戏逻辑、客户之间的网络信息传递,以及数据库之间的数据...

    ASP+ACCESS房产信息管理系统(源代码+毕设文档).zip

    房产信息管理系统的设计目标是立足于开发一套简单易用,方便快捷,...服务器端只需建立www服务以及安装Access数据库,客户端只需拥有IE浏览器即可。功能强大意味着系统的实用性,功能的全面性,系统的安全性和可靠性。

    基于java简易ICQ

    由客户端和服务器端组成。服务器是在老师所给的服务器程序基础改编而成,主要是加入了进程池技术,从而把复杂的进程管理交给进程池去处理,另外我还加入了好友下线功能,还有下线时采用udp数据包通知其在线好友,...

    Node.js-Graphical一个非常轻量级的框架用于从NodeJS直接动态绘制图形到浏览器

    Graphical 一个非常轻量级的框架,用于从NodeJS直接动态绘制图形到浏览器。Graphical能够实时地可视化服务器端数据,如X,Y坐标和加速度计输出。

    深入Java Servlet网络编程

    1. 4 服务器端技术 1. 4. 1 各种服务器端技术的比较 1. 4. 2 基于Java解决方案的特点 第2章 Java Servlet简介 2. 1 Servlet生命周期 2. 2 Java Servlet API简介 2. 3 处理表单和返回数据的实例 2. 4 错误处理...

    基于Java实现(图形界面)聊天系统【100010282】

    (1)服务器端程序要求如下: ① 能等待用户联机,并建立和客户端通信的 I/O 通道; ② 当有用户要求加入聊天室,先验证其帐号和密码的合法性,验证成功后允许联机并将登陆信息写入日志文件或数据库中; ③ 能将用户发...

Global site tag (gtag.js) - Google Analytics