`
koudailidexiaolong
  • 浏览: 96147 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

图片裁剪保存到数据库中的方法

 
阅读更多

/** * 裁剪图片的方法 * * @param request * @param response * @return * @author julong 2013-8-26 下午06:01:45 */ public ModelAndView cutImg(HttpServletRequest request,HttpServletResponse response){ //获取smid String smid = request.getParameter("smid"); //获得x裁剪的位置 String x = request.getParameter("x"); //获得y裁剪的位置 String y = request.getParameter("y"); //获得width选中的大小 String w = request.getParameter("w"); //获得height选中的大小 String h = request.getParameter("h"); //获取原图片对象 PhotoTemp2 photoTemp2 = this.photoTemp2Service.getZp(smid); //获取图片对象 byte[] imgBtye = photoTemp2.getZp(); try { //获取输出流 ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(imgBtye); //将byte数组转换为image对象 BufferedImage bufferedImage=ImageIO.read(byteArrayInputStream); //获得当前的图片的高度和宽度 int thisHeight = bufferedImage.getHeight(); int thisWidth = bufferedImage.getWidth(); //获得裁剪的图片的高度和宽度 x y为裁剪的其实位置 w h 为裁剪的图片大小 BufferedImage subImage = bufferedImage.getSubimage(Integer.valueOf(x), Integer.valueOf(y), Integer.valueOf(w), Integer.valueOf(h)); //判断是否等于原图的大 if(subImage.getWidth()>=0 || subImage.getHeight()>=0){ //设置绘制的图片的大小 BufferedImage tempImg = new BufferedImage(Integer.valueOf(w),Integer.valueOf(h),BufferedImage.TYPE_INT_RGB); //绘制图片 tempImg.getGraphics().drawImage(subImage.getScaledInstance(Integer.valueOf(w), Integer.valueOf(h), Image.SCALE_DEFAULT), 0, 0,null);

//创建字节输入流 ByteArrayOutputStream byteArrayOutputStream =new ByteArrayOutputStream(); ImageIO.write(tempImg, "JPEG", byteArrayOutputStream); //获取新图片的数组 byte[] newImg = byteArrayOutputStream.toByteArray(); photoTemp2.setZp(newImg); //执行更新操作 ExcuteResult r = this.photoTemp2Service.updateDrvPhotoTempZP(photoTemp2); System.out.println(r); } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } request.setAttribute("smid",smid); return new ModelAndView("dagl/lsda_drv_cutImg"); }

jsp裁剪页面

<%@ page language="java" pageEncoding="gbk"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>My JSP 'lsda_drv_cutImg.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"/> <meta http-equiv="cache-control" content="no-cache"/> <meta http-equiv="expires" content="0"/> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"/> <meta http-equiv="description" content="This is my page"/> <link rel="stylesheet" href="jquery/jcrop/css/jquery.Jcrop.css" type="text/css" /> <script type="text/javascript" src="jquery/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="jquery/jcrop/js/jquery.Jcrop.min.js"></script> <script type="text/javascript" src="jquery/jcrop/js/jquery.Jcrop.js"></script> <script language="Javascript">

// Remember to invoke within jQuery(window).load(...) // If you don't, Jcrop may not initialize properly jQuery(document).ready(function(){

jQuery('#cropbox').Jcrop({ onChange: showCoords, onSelect: showCoords }); });

// Our simple event handler, called from onChange and onSelect // event handlers, as per the Jcrop invocation above function showCoords(c) { jQuery('#x').val(c.x); jQuery('#y').val(c.y); jQuery('#x2').val(c.x2); jQuery('#y2').val(c.y2); jQuery('#w').val(c.w); jQuery('#h').val(c.h); }; //单击裁剪的事件 function cutButton(){ $("#cutImgForm").submit(); } function getEventType(event) { //opener 属性非常有用,创建的窗口可以引用创建它的窗口所定义的属性和函数 window.opener.cutImgPageClosed(); window.opener = null; } </script> <style type="text/css"> div,form,label{ padding:0px;margin:0px; } </style> </head>

<body onunload="getEventType(event)"> <div style="padding:0px;text-align:center; " > <form id="cutImgForm" action="drvphototemp.dagl?method=cutImg&smid=${smid }" method="post" > <label>X1 <input type="text" size="4" id="x" name="x" /></label> <label>Y1 <input type="text" size="4" id="y" name="y" /></label> <label>X2 <input type="text" size="4" id="x2" name="x2" /></label> <label>Y2 <input type="text" size="4" id="y2" name="y2" /></label> <label>W <input type="text" size="4" id="w" name="w" /></label> <label>H <input type="text" size="4" id="h" name="h" /></label> <input type="button" name="" value="提交" onclick="cutButton()"></input> </form> <img src="drvphototemp.dagl?method=getZpList&smid=${smid}" id="cropbox" /> </div> </body> </html>

我用的jcrop插件
图片裁剪保存如数据库中的方法 - 口袋里的小龙 - 口袋里的小龙
这个你在网上搜索一下就能出来很方便的东西 这是我做的项目中的代码 数据库中存储的是blob格式的16进制文件 亲测裁剪成功了 分享给大家 希望对你有所帮助
<wbr></wbr>
分享到:
评论

相关推荐

    thinkphp +jquery +Jcrop+ajaxfileupload上传图片并裁剪保存到数据库

    本教程将详细介绍如何使用ThinkPHP框架、jQuery库、Jcrop图像裁剪工具以及AjaxFileUpload插件实现一个无刷新的图片上传和裁剪功能,最后将裁剪后的图片保存到数据库。 首先,`ThinkPHP`是一个流行的PHP框架,它提供...

    手写签名图片,可保存为图片或到数据库

    本项目"手写签名图片,可保存为图片或到数据库"是基于C#的WinForm应用程序,它允许用户进行手写签名,并将签名保存为图片格式或者存储到数据库中。以下是关于这个项目的详细知识点: 1. **手写签名控件**:在...

    20080530数据加密图片信息上传保存到数据库全选GridView数据行变色

    3. **保存到数据库**:图片的元数据(如文件名、大小、上传时间等)会被保存到数据库中。常用的数据库系统有MySQL、SQL Server、Oracle等。图片本身通常不会直接存入数据库,而是保存在文件系统中,数据库中仅存储...

    图片上传至数据库及从数据库读取图片

    传统的做法是将图片保存在文件系统中,并在数据库中存储图片的路径。然而,有些情况下,直接将图片数据存储在数据库(通常是BLOB类型字段)中可能更合适,比如为了确保数据完整性、方便备份和恢复,或者在分布式系统...

    C#的图片加载到picturebox并上传到数据库

    此外,可以使用Image对象提供的方法进行图片处理,如缩放、裁剪等。 3. 图片数据转换: 在上传图片到数据库之前,通常需要将图片转换成适合存储的数据格式,如二进制数组。C#的`MemoryStream`和`BinaryReader`类...

    ASP代码实现图片上传到数据库中

    - 考虑将大图片存储在文件系统中,只在数据库中存储路径,以减轻数据库负担。 - 使用缓存机制,减少频繁的数据库查询。 以上是ASP实现图片上传到数据库的基本流程和技术要点。实际应用中,还需要根据项目需求和...

    C# winform小程序,数据库保存图片,图片显示、修改、加边框

    在本文中,我们将深入探讨如何使用C# Winform开发一个小程序,实现数据库中保存图片,以及在界面上显示、修改和为图片添加边框的功能。Winform是.NET框架中的一个强大的用户界面工具,用于创建桌面应用程序。我们将...

    javascript asp.net 图片剪切上传 图片裁剪 上传保存

    在图片上传过程中,ASP.NET接收JavaScript发送的裁剪后图片数据,通常通过Ajax异步请求完成,这样可以在不刷新页面的情况下完成上传。服务器端可以使用ASP.NET的HTTP模块或控制器来接收和处理这些请求。收到图片数据...

    安卓图片裁剪后上传

    在安卓应用开发中,"安卓图片裁剪后上传"是一个常见的功能需求,尤其在社交类应用中,如模仿微信朋友圈的分享功能。这个功能让用户能够选择一张图片,对其进行裁剪,然后将裁剪后的图片上传到服务器。在本文中,我们...

    头像裁剪保存到后台

    例如,可以将图片保存到云存储服务如阿里云OSS、AWS S3等,同时在数据库中记录图片的URL和其他元数据。 7. **权限控制**:在保存头像时,需要考虑权限问题,确保只有合法用户能修改自己的头像。这通常涉及到身份...

    使用jfinal框架头像裁剪上传

    例如,可以使用cropper.js这样的JavaScript插件,它提供了图片裁剪的功能,用户可以在预览区域自由调整裁剪范围。 在后端,我们需要创建一个JFinal的Controller,处理用户的上传请求。用户上传图片时,会发送一个...

    php+jquery 头像裁剪上传

    在这个项目中,可能涉及的类包括上传类(处理文件上传)、裁剪类(处理图片裁剪)以及用户类(处理用户信息,例如存储头像URL)。每个类都有其特定的职责,遵循面向对象编程原则,提高了代码的可维护性和复用性。 ...

    基于jqueryajax+cropper+springboot的图片裁剪和存储程序.zip

    通常,Spring Boot会使用其集成的数据持久化技术(如JPA或MyBatis)将图片保存到数据库,但考虑到图片文件的大小,更常见的是将图片保存在文件系统中,只存储文件路径在数据库中。这样可以提高读取速度并减轻数据库...

    jsp可视化在线图片裁剪

    3. Java类文件:实现了图片裁剪的逻辑,可能包括图片的读取、裁剪、保存等功能。 4. CSS文件:定义了页面的样式和布局。 5. JavaScript文件:提供了前端的交互逻辑,如图片选择、预览和裁剪操作。 6. 图片资源:可能...

    ssm图片裁剪

    SSM图片裁剪技术主要涉及三个关键组件:Spring、Spring MVC和MyBatis,它们是Java Web开发中常用的三大框架。结合cropper框架,可以实现高效、便捷的图片上传和裁剪功能。以下是对这个技术主题的详细阐述。 **1. ...

    [Delphi]图片批量导入数据库

    1. **图片路径存储**:程序并不直接将图片文件内容存储在数据库中,而是保存图片的路径信息。这是常见的做法,因为直接存储图片可能会占用大量数据库空间,而且不利于文件的管理和更新。图片路径存储后,需要在应用...

    html5+jsp图片裁剪上传

    然后,可以将图片保存到服务器的文件系统或者数据库中。JSP也可以返回保存成功与否的反馈信息,以便前端更新显示。 6. 安全与优化:在实际应用中,需要注意安全问题,比如限制上传文件的类型和大小,防止恶意文件...

    上传图片路径到mysql数据库的源码.docx

    标题中的“上传图片路径到mysql数据库的源码.docx”指的是一个PHP脚本,用于处理用户上传图片到服务器,并将图片的路径存储到MySQL数据库中。这个过程涉及到多个步骤,包括文件上传验证、图片处理(如裁剪和添加水印...

    上传图片裁剪旋转11111111111111

    在后端,接收到的图片数据可能需要存储到文件系统或数据库中,以便后续访问和处理。 图片裁剪涉及图像处理技术。前端可以利用JavaScript库,如Cropper.js、JQuery Cropper等,这些库提供了用户交互式的裁剪界面和...

    jsp图片上传可裁剪

    `jsp图片上传可裁剪`这个主题主要涉及两个关键技术点:图片上传和图片裁剪。接下来,我们将详细讨论这两个方面。 ### 图片上传 1. **文件输入控件**:在HTML中,`&lt;input type="file"&gt;`标签用于创建一个文件选择器...

Global site tag (gtag.js) - Google Analytics