JAVA中把图片保存到数据库

合集下载

基于Java的图片管理信息系统的设计与实现

基于Java的图片管理信息系统的设计与实现
<&:< A((*+",&’U’C7&(B’()+’C7&(B’()19’(>@*>(“EFG->I$/@H /-$=D”);//绑定字段变量 }
56C’+(ER74<6"5&/4"9’(<&:<);//将缩略图文件存入数据库 将图片文件存入数据库的函数56C’+(/4"9’()的实现方法: B(+569C(+G%S"(’A“7%S"(’<8%5,(7+’C’(/-$=DA?;R’+’/.A”T 5S; %C(4(A,:66’,(5:61%+’%"+’B("(’4’6((C(+G%S"(’); B(+569C(+V5&’A(K(V5&’.5"&:919’(E’K((); V5&’P5&’A 6’;V5&’(C(+V5&’); /6%7(B(+’"45CA6’;V5&’/6%7(B(+’"4(P5&’);// 创建输入流,将图
作者参与了北京市综合地理图片数据库项目的合作 开发,该系统要求建立包括历史、地理、文化、文物、旅游、 交通、科技等信息的综合图片库。图片数据库不仅提供按 事件、地点、时 间、内 容 等 信 息 作 为 检 索 关 键 字 的 图 片 查 询,还具有图片数据的录入、图片信息的更新、图片记录的 删除等功能;在该应用系统中还实现了图片专题功能,将
第’#卷 第’"期 !""#年’"月

libwebp用法java

libwebp用法java

libwebp用法javalibwebp是一个开源的图像编码库,可用于将图像转换为WebP格式。

Java是一种广泛使用的编程语言,可以使用libwebp库来实现图像处理功能。

下面是一些关于如何使用libwebp库在Java中处理图像的步骤和示例。

一、准备工作首先,需要确保你的开发环境中已经安装了Java和相关开发工具。

另外,还需要下载并安装libwebp库,并将其添加到Java的类路径中。

二、导入库文件在Java项目中,需要将libwebp库文件导入到项目中。

可以使用以下步骤:1.将libwebp库文件添加到Java项目的类路径中。

通常,可以在开发工具的库文件夹中找到这些文件。

2.在Java代码中导入所需的库文件,例如:```javaimportlibwebp.LibWebP;```三、使用libwebp库下面是一个简单的示例代码,展示了如何使用libwebp库将图像转换为WebP格式:```javaimportlibwebp.LibWebP;importlibwebp.WebP;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;publicclassWebPConverter{publicstaticvoidmain(String[]args){//加载图像文件BufferedImageimage=null;try{image=ImageIO.read(newFile("input.jpg"));}catch(IOExceptione){e.printStackTrace();}if(image==null){System.out.println("无法加载图像文件");return;}//将图像转换为WebP格式并保存为输出文件StringoutputPath="output.webp";WebPwebp=newWebP(image,WebP.UNCOMPRESSED,100);//100表示无损压缩质量为100%byte[]result=null;try{result=LibWebP.encode(webp,LibWebP.ENCODE_WEBP_ALWAYS);//将图像编码为WebP格式并保存结果到byte数组中}catch(Exceptione){e.printStackTrace();}finally{if(result!=null){try{FileoutputFile=newFile(outputPath);//输出文件路径ImageIO.write(image,"webp",outputFile);//将编码后的图像保存到输出文件中}catch(IOExceptione){e.printStackTrace();}finally{LibWebP.free(result);//释放byte数组内存空间}}else{System.out.println("编码失败");}}}}```上述代码中,首先加载了一个输入图像文件,并将其转换为WebP 格式。

java根据图片路径下载图片并保存到本地目录

java根据图片路径下载图片并保存到本地目录

java根据图⽚路径下载图⽚并保存到本地⽬录内容import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import .URL;import .URLConnection;public class DownloadImage {/*** @param args* @throws Exception*/public static void main(String[] args) throws Exception {// TODO Auto-generated method stubdownload("/1/3/B/1_li1325169021.jpg", "1_li1325169021.jpg","d:\\image\\");}public static void download(String urlString, String filename,String savePath) throws Exception {// 构造URLURL url = new URL(urlString);// 打开连接URLConnection con = url.openConnection();//设置请求超时为5scon.setConnectTimeout(5*1000);// 输⼊流InputStream is = con.getInputStream();// 1K的数据缓冲byte[] bs = new byte[1024];// 读取到的数据长度int len;// 输出的⽂件流File sf=new File(savePath);if(!sf.exists()){sf.mkdirs();} // 获取图⽚的扩展名String extensionName = filename.substring(stIndexOf(".") + 1);// 新的图⽚⽂件名 = 编号 +"."图⽚扩展名String newFileName = goods.getProductId()+ "." + extensionName;OutputStream os = new FileOutputStream(sf.getPath()+"\\"+filename);// 开始读取while ((len = is.read(bs)) != -1) {os.write(bs, 0, len);}// 完毕,关闭所有链接os.close();is.close();}}。

bufferedimage用法

bufferedimage用法

bufferedimage用法BufferedImage 是 Java 中的一个图像处理类,它可以用于创建、修改和操作图像。

下面将详细介绍 BufferedImage 的用法。

1. 创建 BufferedImage 对象:```javaBufferedImage image1 = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);BufferedImage image2 = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);```2.导入图像文件:可以使用 ImageIO 类的静态方法 read( 来导入图像文件。

例如:```javaBufferedImage image = ImageIO.read(new File("image.jpg"));```3.保存图像文件:可以使用 ImageIO 类的静态方法 write( 来保存图像文件。

例如:```javaImageIO.write(image, "jpg", new File("newImage.jpg"));```4.获取图像的宽度和高度:可以使用 BufferedImage 的 getWidth( 和 getHeight( 方法获取图像的宽度和高度。

例如:```javaint width = image.getWidth(;int height = image.getHeight(;```5.获取图像的像素值:可以使用 BufferedImage 的 getRGB( 方法获取图像中指定位置的像素值。

例如:```javaint pixel = image.getRGB(x, y);int red = (pixel >> 16) & 0xFF;int green = (pixel >> 8) & 0xFF;int blue = pixel & 0xFF;```6.设置图像的像素值:可以使用 BufferedImage 的 setRGB( 方法设置图像中指定位置的像素值。

java从文件中读取数据并存入对象中的方法

java从文件中读取数据并存入对象中的方法

一、概述在软件开发中,经常会遇到需要从文件中读取数据并存入对象中的情况,尤其是在使用Java语言进行编程时。

掌握Java从文件中读取数据并存入对象中的方法对于开发者来说是非常重要的。

本文将介绍Java中实现该功能的常用方法,并结合实例详细讲解。

二、使用Java读取文件的方法1. 使用File类和Scanner类读取文件Java中可以使用File类和Scanner类来读取文件中的数据。

首先通过File类创建文件对象,然后通过Scanner类来读取文件中的内容。

以下是一个简单的示例代码:```javaimport java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class ReadFromFile {public static void m本人n(String[] args) {try {File file = new File("data.txt");Scanner scanner = new Scanner(file);while (scanner.hasNextLine()) {String data = scanner.nextLine();System.out.println(data);}scanner.close();} catch (FileNotFoundException e) {System.out.println("File not found");e.printStackTrace();}}}```2. 使用BufferedReader类读取文件除了Scanner类,还可以使用BufferedReader类来读取文件中的数据。

与Scanner类不同,BufferedReader类提供了更高效的读取方式。

以下是一个使用BufferedReader类读取文件的示例代码:```javaimport java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class ReadFromFile {public static void m本人n(String[] args) {try {BufferedReader reader = new BufferedReader(new FileReader("data.txt"));String line = reader.readLine();while (line != null) {System.out.println(line);line = reader.readLine();}reader.close();} catch (IOException e) {System.out.println("IO Exception");e.printStackTrace();}}}```以上是使用Java读取文件的基本方法,开发者可以根据实际需求选择合适的方式来读取文件中的数据。

图片存入mySql数据库

图片存入mySql数据库

我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。

大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的只要大家将连接数据库的参数改一下就可以了。

SQL>create table image(id int,content varchar(200),image blob);如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。

testimage.html文件内容如下:<HTML><HEAD><TITLE>Image File </TITLE><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></HEAD><FORM METHOD=POST ACTION="testimage.jsp"><INPUT TYPE="text" NAME="content"><BR><INPUT TYPE="file" NAME="image"><BR><INPUT TYPE="submit"></FORM><BODY></BODY></HTML>我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*" %><%@ page import="java.util.*"%><%@ page import="java.text.*"%><%@ page import="java.io.*"%><html><body><%Class.forName("org.gjt.mm.mysql.Driver").newInstance();Stringurl="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding= 8859_1";//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改Connection conn= DriverManager.getConnection(url);String content=request.getParameter("content");String filename=request.getParameter("image");FileInputStream str=new FileInputStream(filename);String sql="insert into test(id,content,image) values(1,?,?)"; PreparedStatement pstmt=dbconn.conn.prepareStatement(sql);pstmt.setString(1,content);pstmt.setBinaryStream(2,str,str.available());pstmt.execute();out.println("Success,You Have Insert an Image Successfully");%>下面我写一个测试image输出的例子看我们上面程序写的对不对,testimageout.jsp的内容如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*" %><%@ page import="java.util.*"%><%@ page import="java.text.*"%><%@ page import="java.io.*"%><html><body><%Class.forName("org.gjt.mm.mysql.Driver").newInstance();Stringurl="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding= 8859_1";//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改Connection conn= DriverManager.getConnection(url);String sql = "select image from test where id=1";Statement stmt=null;ResultSet rs=null;try{stmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLException e){}try {while(rs.next()) {res.setContentType("image/jpeg");ServletOutputStream sout = response.getOutputStream();InputStream in = rs.getBinaryStream(1);byte b[] = new byte[0x7a120];for(int i = in.read(b); i != -1;){sout.write(b);in.read(b);}sout.flush();sout.close();}}catch(Exception e){System.out.println(e);}%></body></html>你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。

如何将图片保存到SqlServer、Oracle、Access数据库中。-懒猫星空--...

如何将图片保存到SqlServer、Oracle、Access数据库中。-懒猫星空--...

如何将图片保存到SqlServer、Oracle、Access数据库中。

-懒猫星空--...如何将图片保存到SqlServer、Oracle、Access数据库中。

首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换为二进制数组(byte[]);2.把转换后的二进制数组(byte[])作为参数传递给要执行的Command;3.执行Command;首先,如何把图片转换成byte[],如果你使用的是2.0,那么你可以使用FileUpLoad控件来实现byte[] fileData = this.FileUpload1.FileBytes;如果你用的是1.1或者你在创建WinForm那么你可以使用下面的方法来把图片转换为byte[] public byte[] getBytes(string filePath){System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open);byte[] imgData = new byte[fs.Length];fs.Read(imgData, 0, (int)fs.Length);return imgData;}1.SqlServer数据库。

SqlServer有Image字段类型,最大可以存储2G的数据。

byte[] fileData = this.FileUpload1.FileBytes;string sql = "insert into t_img(img) values (@img)";string strconn = System.Configuration.ConfigurationManager.ConnectionStrings[ "fengdongDB"].T oString();SqlConnection sqlConn = new SqlConnection(strconn);SqlCommand sqlComm = new SqlCommand(sql, sqlConn);sqlComm.Parameters.Add("@img", SqlDbType.Image);//添加参数sqlComm.Parameters["@img"].Value = fileData;//为参数赋值sqlConn.Open();sqlComm.ExecuteNonQuery();sqlConn.Close();2.Oracle数据库。

关于图片或者文件在数据库的存储方式归纳

关于图片或者文件在数据库的存储方式归纳

关于图⽚或者⽂件在数据库的存储⽅式归纳据我了解,互联⽹环境中,⼤访问量,数据库速度和性能⽅⾯很重要。

⼀般在数据库存储图⽚的做法⽐较少,更多的是将图⽚路径存储在数据库中,展⽰图⽚的时候只需要连接磁盘路径把图⽚载⼊进来即可。

因为图⽚是属于⼤字段。

⼀张图⽚可能1m到⼏m。

有个原则:图⽚尽量不要存储在数据库中(是指不要⼆进制形式保存到字段,⽽只保存图⽚的路径)。

这样的⼤字段数据会加重数据库的负担,拖慢数据库。

在⼤并发访问的情况下很重要。

这是⼀个经验。

去看看dba对数据库性能调优⽅⾯的分析都能得到这个答案的:就是图⽚不要存储在数据库中。

⼆、数据库中保存图⽚路径⼀般是这样⼦的:按照年⽉⽇⽣成路径。

具体是按照年⽉⽇还是按照年⽉去⽣成路径,根据⾃⼰需要(不⼀定是按照⽇期去⽣成)。

理解为什么要分散到多个⽂件夹中去才是关键,涉及到⼀个原理就明⽩了:操作系统对单个⽬录的⽂件数量是有限制的。

当⽂件数量很多的时候。

从⽬录中获取⽂件的速度就会越来越慢。

所以为了保持速度,才要按照固定规则去分散到多个⽬录中去。

图⽚分散到磁盘路径中去。

数据库字段中保存的是类似于这样⼦的”images/2012/09/25/ 1343287394783.jpg”原来上传的图⽚⽂件名称会重新命名保存,⽐如按照时间戳来⽣成,1343287394783. jpg。

这样⼦是为了避免⽂件名重复,多个⼈往同⼀个⽬录上传图⽚的时候会出现。

反正⽤什么样的规则命名图⽚,只要做到图⽚名称的唯⼀性即可。

⽐如⽹站的并发访问量⼤,⽬录的⽣成分得⽉细越好。

⽐如精确到⼩时,⼀个⼩时都可以是⼀个⽂件夹。

同时0.001秒有两个⽤户同时在上传图⽚(因为那么就会往同⼀个⼩时⽂件夹⾥⾯存图⽚)。

因为时间戳是精确到秒的。

为了做到图⽚名称唯⼀性⽽不⾄于覆盖,⽣成可以在在时间戳后⾯继续加毫秒微秒等。

总结的规律是,并发访问量越⼤。

就越精确就好了。

我现在还没碰到需要这么精细的。

概率⽐较少。

有个⽅⾯总结⼀下:为什么保存的磁盘路径,是”images/2012/09/25/1343287394783.jpg”,⽽不是” /images/2012/09/25/ 1343287394783.jpg”(最前⾯带有斜杠)我的理解:连那个斜杠都不要。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

} catch (Exception ex) { ex.printStackTrace(System.out); } finally { try {conn.close();} catch (Exception ex) { } } } Nhomakorabea}
Java 中把图片保存到数据库.txt26 选择自信, 就是选择豁达坦然, 就是选择在名利面前岿然 不动,就是选择在势力面前昂首挺胸,撑开自信的帆破流向前,展示搏击的风采。Java 中把 图片保存到数据库 import java.sql.*; import java.io.*; public class DBTest
{
static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; static String url = "jdbc:microsoft:sqlserver://192.168.0.202:9999999999;DatabaseName=dddd"; static String user = "sa"; static String passwd = "ps"; public static void main(String[] args) throws Exception { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url,user,passwd); int op = 0; //插入 if (op == 0) { PreparedStatement ps = conn.prepareStatement("insert into tb_file values (?,?)"); ps.setString(1, "aaa.exe"); InputStream in = new FileInputStream("d:/aaa.exe"); ps.setBinaryStream(2,in,in.available()); ps.executeUpdate(); ps.close(); } else { //取出 PreparedStatement ps = conn.prepareStatement("select * from tb_file where filename = ?"); ps.setString(1, "aaa.exe"); ResultSet rs = ps.executeQuery(); rs.next(); InputStream in = rs.getBinaryStream("filecontent"); System.out.println(in.available()); FileOutputStream out = new FileOutputStream("d:/bbb.exe");
byte[] b = new int len = 0; while ( (len = out.write(b, 0, out.flush(); } out.close(); in.close(); rs.close(); ps.close(); }
byte[1024]; in.read(b)) len); != -1) {
相关文档
最新文档