java读取输入图片用什么?在java 中在代码中要引用的图片该放在哪个文件
大家好,今天来为大家分享java读取输入图片用什么的一些知识点,和在java 中在代码中要引用的图片该放在哪个文件的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
在java 中在代码中要引用的图片该放在哪个文件
放到任意文件夹都可以,看你的管理方式。
1、放到和程序目录下的某个文件夹中。
//假设图片放到程序运行目录的img目录下
BufferedImageimg=ImageIO.read(newFile("img/my.png"));
2、放到源文件中,和读取类在同一目录,使用时图片要按包名打包到jar中
//假设图片放到src下,和MyImages在一个目录
BufferedImageimg=ImageIO.read(MyImages.class.getResource("my.png"));
3、放到源文件中,但在独立文件夹中,使用时图片要按包名打包到jar中
//假设图片放到src下的img目录中
BufferedImageimg=ImageIO.read(MyImages.class.getResource("res/my.png"));
java读取图片文件只能用字节流
题主是否想询问“java读取图片文件只能用字节流的什么方式?”方式如下。
1、使用字节流读取:使用JavaIO包中的FileInputStream来读取图片文件的字节流数据,这种方式适用于需要对图片进行处理的情况,如基于像素点的颜色分析、修改等。
2、使用ImageIO类读取:Java中专门提供了ImageIO类用于读取和写入图片文件,直接加载图片文件并转换为BufferedImage对象,这种方式适用于只需要简单地显示或者保存图片信息的情况。
java web开发,上传图片并读取
上传的话简单:
用smartUpload
新建doUpload.jsp
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<%@ page import="com.jspsmart.upload.*"%>
<jsp:directive.page import="java.io.File"/>
<HTML>
<BODY>
<%
//参数path:web发布根路径。
String path= request.getSession().getServletContext().getRealPath("");
//参数savePath:上传文件存放路径。
String savePath="\\temp\\";
savePath= path+ savePath;
//这里的路径可以自己设定
//如果savePath不存在,就新建一个文件夹
File tempPath= new File(savePath);
if(!tempPath.exists()){
tempPath.mkdir();
}
//新建一个SmartUpload对象
SmartUpload su= new SmartUpload();
//上传初始化
su.initialize(pageContext);
//设定上传限制
// 1.限制每个上传文件的最大长度。
// su.setMaxFileSize(10000);
// 2.限制总上传数据的长度。
// su.setTotalMaxFileSize(20000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
// su.setAllowedFilesList("doc,txt");
// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。
// su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
//上传文件
su.upload();
//将上传文件全部保存到指定目录
int count= su.save(savePath);
//out.println(count+"个文件!<br>");
//逐一提取上传文件信息,同时可保存文件。
com.jspsmart.upload.File file= su.getFiles().getFile(0);
//若文件不存在则继续
%>
</BODY>
</HTML>
2,读取文件就更简单了
假如你所有的文件都存到指定路径下
文件命名规则比如“imge1,imge2..........”很多
frame.jsp
<body>
<div id="frame">
<input name=lastime type=Button value="<--" onclick="lastpic()">//上一张图片
<imge id="picture" src="image1.jpg">//默认第一张图片
<input name="index" value=1 type=hidden>
<input name=lastime type=Button value="-->"onclick="nextpic()">//下一张图片
</div>
</body>
<script type="text/javascript">
function lastpic()
{
var index= document.getElementById("index").value
if(index>1)
document.getElementById("index").src="image"+(index-1)+".jpg";//上一张图片
}
function nextpic()
{
var index= document.getElementById("index").value
if( document.getElementById("image"+(index+1)+".jpg")
document.getElementById("index").src="image"+(index+1)+".jpg";//下一张图片
}
</script>
用java如何读取图片的颜色模式值
java读取图片的 Exif数据收藏
包的下载地址:
http://www.drewnoakes.com/code/exif/releases/metadata-extractor-2.2.0.jar
package com.imgread;
import com.drew.metadata.*;
import com.drew.metadata.exif.*;
import com.drew.imaging.jpeg.JpegProcessingException;
import java.io.*;
import java.util.Iterator;
public class EXIFReader{
public static void main(String args[]) throws FileNotFoundException{
File f= new File("c:\\b.jpg");
try{
ExifReader er= new ExifReader(f);
Metadata exif= er.extract();
Iterator itr= exif.getDirectoryIterator();
while(itr.hasNext()){
Directory directory=(Directory) itr.next();
System.out.println("EXIF版本:"+ directory.getString(ExifDirectory.TAG_EXIF_VERSION));
System.out.println("相机品牌:"+ directory.getString(ExifDirectory.TAG_MAKE));
System.out.println("相机型号:"+ directory.getString(ExifDirectory.TAG_MODEL));
System.out.println("光圈值:"+ directory.getString(ExifDirectory.TAG_FNUMBER));
System.out.println("快门:"+ directory.getString(ExifDirectory.TAG_EXPOSURE_TIME));
System.out.println("感光度:"+ directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT));
System.out.println("软件:"+ directory.getString(ExifDirectory.TAG_SOFTWARE));
System.out.println("原始拍摄时间:"+ directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL));
System.out.println("数字化时间:"+ directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED));
System.out.println("方向:"+ directory.getString(ExifDirectory.TAG_ORIENTATION));
System.out.println("图片宽度:"+ directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH));
System.out.println("图片高度:"+ directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT));
System.out.println("水平分辨率:"+ directory.getString(ExifDirectory.TAG_X_RESOLUTION));
System.out.println("垂直分辨率:"+ directory.getString(ExifDirectory.TAG_Y_RESOLUTION));
System.out.println("垂直分辨率:"+ directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS));
break;
//获得全部metadata
/*Iterator tags= directory.getTagIterator();
while(tags.hasNext()){
Tag tag=(Tag) tags.next();
System.out.println(tag);
}
if(directory.hasErrors()){
Iterator errors= directory.getErrors();
while(errors.hasNext()){
System.out.println("ERROR:"+ errors.next());
}
}*/
}
} catch(JpegProcessingException e){
System.err.println("not jpeg file");
}
}
}
方法说明:
Image Description图像描述、来源.指生成图像的工具
Artist作者有些相机可以输入使用者的名字
Make生产者指产品生产厂家
Model型号指设备型号
Orientation方向有的相机支持,有的不支持
XResolution/YResolution X/Y方向分辨率本栏目已有专门条目解释此问题。
ResolutionUnit分辨率单位一般为PPI
Software软件显示固件Firmware版本
DateTime日期和时间
YCbCrPositioning色相定位
ExifOffsetExif信息位置,定义Exif在信息在文件中的写入,有些软件不显示。
ExposureTime曝光时间即快门速度
FNumber光圈系数
ExposureProgram曝光程序指程序式自动曝光的设置,各相机不同,可能是Sutter Priority(快门优先)、Aperture Priority(快门优先)等等。
ISO speed ratings感光度
ExifVersionExif版本
DateTimeOriginal创建时间
DateTimeDigitized数字化时间
ComponentsConfiguration图像构造(多指色彩组合方案)
CompressedBitsPerPixel(BPP)压缩时每像素色彩位指压缩程度
ExposureBiasValue曝光补偿。
MaxApertureValue最大光圈
MeteringMode测光方式,平均式测光、中央重点测光、点测光等。
Lightsource光源指白平衡设置
Flash是否使用闪光灯。
FocalLength焦距,一般显示镜头物理焦距,有些软件可以定义一个系数,从而显示相当于35mm相机的焦距 MakerNote(User Comment)作者标记、说明、记录
FlashPixVersionFlashPix版本(个别机型支持)
ColorSpace色域、色彩空间
ExifImageWidth(Pixel X Dimension)图像宽度指横向像素数
ExifImageLength(Pixel Y Dimension)图像高度指纵向像素数
Interoperability IFD通用性扩展项定义指针和TIFF文件相关,具体含义不详
FileSource源文件 Compression压缩比。
关于本次java读取输入图片用什么和在java 中在代码中要引用的图片该放在哪个文件的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。