「java另存图片」java下载图片到本地

博主:adminadmin 2022-12-22 19:51:08 55

本篇文章给大家谈谈java另存图片,以及java下载图片到本地对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 中怎么存储图的

java将byte数组转换成图片,可以File和IO操作来完成,实例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

//byte数组到图片到硬盘上

public void byte2image(byte[] data,String path){

if(data.length3||path.equals("")) return;//判断输入的byte是否为空

try{

FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));//打开输入流

imageOutput.write(data, 0, data.length);//将byte写入硬盘

imageOutput.close();

System.out.println("Make Picture success,Please find image in " + path);

} catch(Exception ex) {

System.out.println("Exception: " + ex);

ex.printStackTrace();

}

}

在java中如何将图片保存到数据库?

存取图片就是二进制数据的存取问题

把图片以文件的时候读入到程序中

转换成byte

以byte显示保存到数据库中

另外,access保存文件~~不合适~

---------------------------

显示和存储没关系,看你要怎么显示了~显示到浏览器?

java web项目中有很多的图片,如何存放?

一般有两种情况,

一种是前端开发需要显示的图片,这个是页面构成必须的元素,一般这些会做 动静分离,后台接口 跟 前端资源会部署在不同的服务器上,有不同的优化,一般会有转发的服务器,判断是后台接口,就转发到后台的服务器,如果是前端资源,就转发到前台的服务器。一般情况下,前端服务器,跟后台的服务器,是分离开的,有不同的人去管理,如果项目小的话,可能就全放在一个。这个优化的化,你可以去了解下 CDN原理。这个是用来优化静态资源加载情况的。

另一种情况是,显示的图片,不是前端构成的,是用户上传文件产生的,这种情况下,现在一般有专门的对象存储,用过 七牛云,跟阿里的。这个的逻辑是文件上传的时候,不是上传到我们自己的服务器,上传到专门的云服务器,我们自己数据库只需要保存这些上传文件的地址,真正使用的时候,把连接给前端,前端自动会根据内容到专门的云服务器上去获取。所有的安全,优化,带宽,缓存命中,这些都有由云服务器去保证。 简单来说,只有有钱,这些东西根本不会成为你项目的瓶颈。

作为技术,我们讨论的应该不是这些。图片会做备份,这个可以有专门的磁盘阵列去实现,简单来说,就是上传的内容保存到磁盘的时候,会自动多保存几个备份到不同的磁盘上。还是那句话,多去了解下CDN的原理,最后这段,个人理解,不一定对。

java 保存图片

ImageIO.write(BufferedImage, "JPG", File);

================================

传入Component保存图像的方法,你试试看还有没有变色。

public void cutScreen(Component com) {

Rectangle rect = com.getBounds();

BufferedImage bi = (BufferedImage) com.createImage(rect.width,

rect.height);

Graphics g = bi.getGraphics();

com.paint(g);

g.dispose();

JFileChooser jfc = new JFileChooser();

jfc.setFileFilter(new FileFilter() {

public boolean accept(File f) {

return f.isDirectory()

|| f.getName().toLowerCase().endsWith(".jpg");

}

public String getDescription() {

return "*.jpg";

}

});

int type = jfc.showSaveDialog(null);

if (type == 0) {

File file = jfc.getSelectedFile();

name = file.getName().toLowerCase();

if (!name.endsWith("jpg")) {

String path = file.getAbsolutePath();

file = new File(path + ".jpg");

for (int i = 0; file.exists(); i++) {

file = new File(path + "(" + i + ").jpg");

}

}

try {

if (!file.exists()) {

file.createNewFile();

}

ImageIO.write(bi, "JPG", file);

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

我要用JAVA存图片到数据库

Android保存到数据库一般用SQLite,图片要是直接保存到数据库里面去,SQLite是用一种叫BLOB(大二进制对象)的类型保存的,在Java中需要用InputStream(读取时)和OutputStream(写入时)进行处理。

还有一种存图片的方法:图片进数据库的不一定是图片本身,你可以只传图片的路径(绝对或相对路径),这样就只需要一个字符串字段了(string, varchar之类的),需要时查到数据库里的路径在连接到文件系统就找到了。

用java实现读取一个jpg图片,根据4个坐标,把坐标内的图片保存为另一个jpg图片

package test.any;

import java.awt.Rectangle;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.Iterator;

import javax.imageio.ImageIO;

import javax.imageio.ImageReadParam;

import javax.imageio.ImageReader;

import javax.imageio.stream.ImageInputStream;

public class CutPicture {

 private String srcpath;

 private String subpath;

 private String imageType;

 private int x;

 private int y;

 private int width;

 private int height;

 public CutPicture() {

 }

 

 public CutPicture(String srcpath, int x, int y, int width, int height) {

  this.srcpath = srcpath;

  this.x = x;

  this.y = y;

  this.width = width;

  this.height = height;

 }

 public int getHeight() {

  return height;

 }

 public void setHeight(int height) {

  this.height = height;

 }

 public String getSrcpath() {

  return srcpath;

 }

 public void setSrcpath(String srcpath) {

  this.srcpath = srcpath;

  if(srcpath != null) {

   this.imageType = srcpath.substring(srcpath.indexOf(".")+1, srcpath.length());

  }

 }

 public String getSubpath() {

  return subpath;

 }

 public void setSubpath(String subpath) {

  this.subpath = subpath;

 }

 public int getWidth() {

  return width;

 }

 public void setWidth(int width) {

  this.width = width;

 }

 public int getX() {

  return x;

 }

 public void setX(int x) {

  this.x = x;

 }

 public int getY() {

  return y;

 }

 public void setY(int y) {

  this.y = y;

 }

 

 public String getImageType() {

  return imageType;

 }

 public void setImageType(String imageType) {

  this.imageType = imageType;

 }

 

 public void cut() throws IOException {

  FileInputStream is = null;

  ImageInputStream iis = null;

  try {

   is = new FileInputStream(srcpath);

   this.setSrcpath(srcpath);

   IteratorImageReader it = ImageIO.getImageReadersByFormatName(this.imageType);

   ImageReader reader = it.next();

   iis = ImageIO.createImageInputStream(is);

   reader.setInput(iis, true);

   ImageReadParam param = reader.getDefaultReadParam();

   Rectangle rect = new Rectangle(x, y, width, height);

   param.setSourceRegion(rect);

   BufferedImage bi = reader.read(0, param);

   ImageIO.write(bi, this.imageType, new File(subpath));

  } finally {

   if (is != null)

    is.close();

   if (iis != null)

    iis.close();

  }

 } 

 

 public static void main(String[] args) {

  CutPicture o = new CutPicture("c:\\粗切编目层详细1.png", 0, 0, 100, 100);

  o.setSubpath("c:\\1.png");

  try {

   o.cut();

  } catch (IOException e) {

   e.printStackTrace();

  }

 }

}

关于java另存图片和java下载图片到本地的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。