集思广益 JSP图片处理能力

萱哥老了 2009-03-09 12:06:02
加精
最近小僧在网络上查找了关于JSP图片处理的问题,没有找到很全面的总结贴!

图片处理 (发大 缩小 反选 单色处理 图片识别 图片切割 大家可以补充)

提供一个平台,希望大家可以把好用的JSP处理代码共享出来。

顶贴有分,经典代码加分。




...全文
2194 181 打赏 收藏 转发到动态 举报
写回复
用AI写文章
181 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjzmr123 2012-06-14
  • 打赏
  • 举报
回复
个人觉得单写一个专门处理输出image stream的servlet比较好,在JSP写不会感觉很乱很别扭吗
anyanlongA 2012-06-05
  • 打赏
  • 举报
回复
2012年了
chen_x_zh 2011-09-20
  • 打赏
  • 举报
回复
有这样一个需求,保存图片的字段是“服务器路径”+“系统生成文件名”+“,”组成的一组String,图片放在服务器路径下。现在需要在显示的页面上完成这个功能,点击显示图片就将该图片从数据库中删掉。求教。
javaBug 2009-04-12
  • 打赏
  • 举报
回复
学习
madee123 2009-04-12
  • 打赏
  • 举报
回复
fanyuanwaifdl 2009-04-04
  • 打赏
  • 举报
回复
up
jialejiayuan 2009-04-04
  • 打赏
  • 举报
回复
/// <summary>
/// 图片加水印
/// </summary>
/// <param name="filepath">图片路径</param>
/// <returns>BitMap</returns>
private static Bitmap AddWord(string filepath){
var bm=new Bitmap(filepath);
using(Graphics g=Graphics.FromImage(bm)){
g.DrawString("", new System.Drawing.Font("隶书", 36), new System.Drawing.SolidBrush(System.Drawing.Color.White), bm.Width / 10 - 50, bm.Height / 10 - 20);
}
return bm;
}

刚才发错了那是JAVAscrip我是说这段代码是JAV吗
jialejiayuan 2009-04-04
  • 打赏
  • 举报
回复
<script language="javascript">
var map;
var win;
var points=[];
var mapTexts=[];
var markers=[];
var labels=[];
var tips=[];
var moveLsitener;
var markerEdit;
var markerEditForm;
var lTStandMapControl;//地图导航控件
var lTRectControl;//拉框控件
var mapMode;
var mapDrag;

function onMouseOver()
{
this.setVisible(true);
}

function onMouseOut()
{
this.setVisible(false);
}

function onMoveEnd()//定义地图在定位到中心完成之后执行的函数
{
LTEvent.removeListener(moveLsitener);//删除事件注册
var point=map.getCenterPoint();//根据像素位置p求出经纬度坐标
points.push(point);
addMarker(points.length-1);
showEditMarkerForm(points.length-1);
//map.zoomIn();//放大地图
}

function onDblClick(point)
{
if(mapMode=="marker")
{
points.push(point);
addMarker(points.length-1);
showEditMarkerForm(points.length-1);
}
}

function onDblClick1()//定义在双击的时候执行的函数
{
if(mapMode=="marker") moveLsitener=LTEvent.addListener(map,"moveend",onMoveEnd);
//因为系统默认双击的时候会将地图定位到中心,因此,只需要定义地图在定位到中心完成之后添加自己的事件即可
}

function onDraw(bounds,rect)
{
//var points=[new LTPoint(bounds.getXmin(),bounds.getYmin()),new LTPoint(bounds.getXmin(),bounds.getYmax()),new LTPoint(bounds.getXmax(),bounds.getYmax()),new LTPoint(bounds.getXmax(),bounds.getYmin())];
//map.getBestMap(points);//将地图定位到最佳视图
var point=new LTPoint((bounds.getXmin()+bounds.getXmax())/2,(bounds.getYmin()+bounds.getYmax())/2);
var zoom=map.getBestZoom(bounds);
map.moveToCenter(point);
map.zoomTo(zoom);
this.clear();
}

function dragEndCallBack(i)
{
return function()
{
if(points[i]==this.point) return;
if(confirm("真的要移动标注吗?"))
{
points[i]=this.point;
mapTexts[i].setPoint(points[i]);
showMarker(i);
}
else
{
markers[i].setPoint(points[i]);
}
}
}

function clickMarkerCallBack(i)
{
return function()
{
showMarker(i);
};
}

function showMarker(i)
{
//map.moveToCenter(points[i]);
win=markers[i].openInfoWinHtml(" <div align=left style='width:200px;height:100px;overflow:auto'>"+tips[i].replace(/[\n]/g," <br>")+" </div>");
if(mapMode=="marker")
win.setTitle("[ <span style='cursor:pointer;color:#FF6410' onclick='showEditMarkerForm("+i+")'>编辑 </span>][ <span style='cursor:pointer;color:#FF6410' onclick='deleteMarker("+i+")'>删除 </span>]"+labels[i]);
else
win.setTitle(labels[i]);
win.moveToShow();
}

function deleteMarker(i)
{
if(confirm("真的要删除标注\""+labels[i]+"\"吗?"))
{
map.removeOverLay(markers[i],true);
map.removeOverLay(mapTexts[i],true);
win.closeInfoWindow();
$("mapList").removeChild($("markerList"+i));
}
}

function editMarker()
{
if(!/.{2,30}/.test(markerEditForm.label.value))
{
alert("标注名称必须为2到30个字符");
return false;
}
if(markerEditForm.tips.value.length>250)
{
alert("标注说明必须为0到250个字符");
return false;
}
i=markerEditForm.index.value;
labels[i]=markerEditForm.label.value.replace(/ </gi,"<");
tips[i]=markerEditForm.tips.value.replace(/ </gi,"<");
mapTexts[i].setLabel(labels[i]);
$("markerList"+i).innerHTML=labels[i];
showMarker(i);
return false;
}

function showEditMarkerForm(i)
{
markerEditForm.index.value=i;
markerEditForm.label.value=labels[i].replace(/</gi," <");
markerEditForm.tips.value=tips[i].replace(/</gi," <");
win=markers[i].openInfoWinElement(markerEdit);
markerEdit.style.display="block";
win.setTitle("[ <span style='cursor:pointer;color:#FF6410' onclick='markerEditForm.submit.click()'>确定 </span>]"+labels[i]);
win.moveToShow();
}

function addMarker(i)
{
var point=points[i];
var x=point.getLongitude();
var y=point.getLatitude();
markers[i] = new LTMarker(point);
mapTexts[i] = new LTMapText(markers[i]);
labels[i]="第"+(1+i)+"个标注";
tips[i]="坐标位置:"+ x + "," + y + "\n你可以在这里添加标注说明.";
mapTexts[i].setLabel(labels[i]);
mapTexts[i].setVisible(false);
mapTexts[i].setNoWrap(false);
map.addOverLay(markers[i]);
map.addOverLay(mapTexts[i]);
if(mapMode=="marker")
{
markers[i].enableDrag();
}
LTEvent.addListener(markers[i],"click",clickMarkerCallBack(i));
LTEvent.addListener(markers[i],"dragend",dragEndCallBack(i));
LTEvent.bind(markers[i],"mouseover",mapTexts[i],onMouseOver);
LTEvent.bind(markers[i],"mouseout",mapTexts[i],onMouseOut);
$("mapList").innerHTML+=" <div id='markerList"+i+"' class='markerList' onmouseover='this.className=\"markerListOver\"' onmouseout='this.className=\"markerList\"' onclick='showMarker("+i+")'>"+labels[i]+" </a> </div>";
}

function onLoad()
{
mapMode="view";
mapDrag=0;
map=new LTMaps("mapDiv");

lTStandMapControl=new LTStandMapControl();//地图导航控件
lTRectControl = new LTRectControl();//拉框控件
lTRectControl.setVisible(false);
LTEvent.addListener(lTRectControl,"draw",onDraw)
map.addControl(lTRectControl);
map.addControl(lTStandMapControl);

map.centerAndZoom(new LTPoint(11177540,2314850),0);
map.handleKeyboard();//启用键盘
map.handleMouseScroll();//启用鼠标滚轮功能支持,参数true代表使用鼠标指向点位置不变模式

points.push(new LTPoint(11177440,2314850));
points.push(new LTPoint(11177540,2314850));
points.push(new LTPoint(11177640,2314850));
for(i=0;i <points.length;i++)
{
addMarker(i);
}
//LTEvent.addListener(map,"dblclick",onDblClick1);//在地图被双击时,先调用系统函数(定位到中心),再执行onDblClick函数
LTEvent.bind(map,"dblclick",map,onDblClick);//绑定事件,在双击的时候先执行onDblClick函数,再调用系统函数(定位到中心)
markerEditForm=document.forms["markerEditForm"];
markerEdit=$("markerEdit");
}
请问这是JAVA语言的图片处理吗?如何将前台页面index.jsp与后台的图片库联系啊?还有一旦图片放到了JSP页面中位置是不是就不能变了?
jialejiayuan 2009-04-04
  • 打赏
  • 举报
回复
谢谢
Anajian 2009-04-04
  • 打赏
  • 举报
回复
回帖是一种美德!每天回帖即可获得 10 分可用分

--顶这个
truemanone 2009-04-02
  • 打赏
  • 举报
回复
很好的想法
zooayshien 2009-04-02
  • 打赏
  • 举报
回复
狂轰乱顶……
huxhuxxx 2009-04-02
  • 打赏
  • 举报
回复
回复多 也头晕
gothedistance 2009-04-01
  • 打赏
  • 举报
回复

【autocode代码生成器】

全面支持自动生成 java 标准代码!
全面支持自动生成 struts1.2 标准代码!
全面支持自动生成 ASP.NET 标准代码!

全面支持当今流行的三大主流开发架构


同时欢迎大家有空关注我们的QQ空间 http://915842778.qzone.qq.com/

需要的朋友可以到天空软件园(www.skycn.com) 、华军软件园(www.newhua.com)、CSDN社区( www.csdn.net)下载使用
(注:在其网站的软件搜索里输入 “autocode” 即可查询出autocode代码生成器来供大家下载的地址咯)

autocode代码生成器各个版本自动生成代码的特点:--==

1 .【 JAVA版 】具体自动生成的内容如下:

    ★ VO、POJO对象
    ★ DAO接口
    ★ IMPL接口实现类
    ★ DAO工厂
    ★ VO、POJO工厂
    ★ DBC数据库连接管理类,数据库事务处理机制
    ★ Servlet业务处理及其配置文件
    ★ JSP调用页面(增、删、改、查),分页功能自动实现 


2 .【 Struts1.2 版 】具体自动生成的内容如下:
★ VO、POJO对象
★ DAO接口
★ IMPL接口实现类
★ DAO工厂
★ VO、POJO工厂
★ DBC数据库连接管理类,数据库事务处理机制
★ EncodingFilter 处理中文乱码的编码过滤器
★ Action、Form、struts-config.xml web.xml struts的处理核心类及配置文件
★ JSP调用页面(全面支持struts1.2)(增、删、改、查),分页功能自动实现
(如果数据库是sqlserver,又需要分页的,请使用sqlserver2005)


3 .【 ASP.NET版 】具体自动生成的内容如下:
★ VO、POJO对象
★ DAO接口
★ IMPL接口实现类
★ DAO工厂
★ VO、POJO工厂
★ DBC数据库连接管理类,数据库事务管理机制
★ ASPX调用页面(增、删、改、查)(含.CS文件),分页功能自动实现
★ Web.Config配置文件(VS2005工程需要的文件) 


4、特色:
☆ 一键生成,简洁使用。
☆ 生成的代码全部开源,没有任何通过插件或链接库来做的操作。
☆ 支持多表的多主键处理。
☆ 支持数据事务的操作。
☆ 生成内容可以依据客户的需要来选择性的生成。
☆ 支持自定义查询接口的生成,用户可以定义查询条件。
☆ 生成的jsp、Servlet、Action、Asp.net 完全处理好了精度字段的精度及显示处理。
☆ 目前支持Oracle、Sqlserver 数据库对象的自动生成代码。
java9dao 2009-04-01
  • 打赏
  • 举报
回复
up 关注
萱哥老了 2009-03-31
  • 打赏
  • 举报
回复
很好的JS代码 非常感谢 学习中。。
萱哥老了 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 91 楼 phoebuswei 的回复:]
C# code///<summary>///生成缩微图///</summary>///<param name="filepath">路径</param>///<param name="thumbWi">缩微图宽</param>///<param name="thumbHi">缩微图高</param>///<param name="maintainAspect">长宽是否重置</param>///<param name="Watermark">是否带水印,true 带水印,flase 不带水印</param>///<returns>Bitmap</returns>privatestaticBitmap CreateThumbnail
(stringfilepath,intthumbWi,intthu…
[/Quote]


兄弟俺非常感谢你的热心。但是.net的代码就不要贴在这里了
萱哥老了 2009-03-30
  • 打赏
  • 举报
回复
看到这么多人回帖 俺很激动

俺纠正下我的所发 是基于Java的web开发中的图片处理能力

感谢各位对于这个问题的热心回答

但是我感觉是不足够的

Java的魅力就在于博大的开源资源。

我开这个帖子就是为了做一个总结贴。

有人说用JS可以 有人说服务端可以 有人说第三方插件可以

但是请各位多用那么一点点时间,把代码和具体使用的插件贴出来。让大家可以借鉴。

让大家想到web上的图片处理,就先到这个帖子来看看,是不是有适用与他们的方法。(呵呵 貌似有点YY)

在这里我先替后来的收益者 感谢为这个问题做出贡献的各位高手们,专家们。

有人分享真好,有人愿意分享更好!
佳然love 2009-03-26
  • 打赏
  • 举报
回复
顶下 骗分
chris9999 2009-03-26
  • 打赏
  • 举报
回复
电脑上安装ImageMagic软件
然后引入Jmagic的包,就可以进行一系列的图形处理
加载更多回复(160)

81,082

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧