「java另存图片」java下载图片到本地
本篇文章给大家谈谈java另存图片,以及java下载图片到本地对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 中怎么存储图的
- 2、在java中如何将图片保存到数据库?
- 3、java web项目中有很多的图片,如何存放?
- 4、java 保存图片
- 5、我要用JAVA存图片到数据库
- 6、用java实现读取一个jpg图片,根据4个坐标,把坐标内的图片保存为另一个jpg图片
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下载图片到本地的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-22,除非注明,否则均为
原创文章,转载请注明出处。