在工作中遇到了一个将bmp文件转为jpg文件的工作(因为bmp文件太大,后期的处理可能遇到问题,所以转为jpg会有失真,但对我们的程序不会有太大影响。),对于bmp转jpg的话java本身就提供了很好的支持,所以不用过多的关注,如果不知道的话可以看看下面的文章:
地址--http://blog.csdn.net/shixing_11/article/details/5731050
但是,对于图片的格式通过后缀名判断是不准确的,因为我们可以去手动的更改后缀名,但是文件大小和本质是不会变的,所以要用java对文件进行判断,如果是bmp文件就转成jpg,如果不是直接入库。从网上找了几个方法,试了下下面的好使,不说废话直接上代码(有部分改动,也可以更改之后判断用作上传的是不是图片)。
public static String getImageType(String path) throws IOException {
FileInputStream fis = new FileInputStream(path);
int leng = fis.available();
BufferedInputStream buff = new BufferedInputStream(fis);
byte[] mapObj = new byte[leng];
buff.read(mapObj, 0, leng);
String type = "";
ByteArrayInputStream bais = null;
MemoryCacheImageInputStream mcis = null;
try {
bais = new ByteArrayInputStream(mapObj);
mcis = new MemoryCacheImageInputStream(bais);
Iterator itr = ImageIO.getImageReaders(mcis);
while (itr.hasNext()) {
ImageReader reader = (ImageReader) itr.next();
String imageName = reader.getClass().getSimpleName();
if(imageName!=null){
if("GIFImageReader".equals(imageName)){
type = "gif";
}else if("JPEGImageReader".equals(imageName)){
type = "jpg";
}else if("PNGImageReader".equals(imageName)){
type = "png";
}else if("BMPImageReader".equals(imageName)){
type = "bmp";
}else{
type = "noPic";
}
}
}
}catch (Exception e) {
type = "noPic";
} finally {
if (bais != null) {
try {
bais.close();
} catch (IOException ioe) {
}
}
if (mcis != null) {
try {
mcis.close();
} catch (IOException ioe) {
}
}
}
return type;
}
希望对大家有帮助
分享到:
相关推荐
java文件的工具类,封装了常用的操作,尤其针对文件的实际类型,通过获取文件的byte,来查看文件起始字节的魔数值,通过魔数值来判断文件的类型,工具集合了常用的文件类型对应的魔数,也封装了文件类型的判断方法
有些软件通过改变文件的扩展名隐藏文件的真实类型。例如,有些游戏的音乐和动画其实是标准的MID和AVI文件...现在编写一个程序,使它从一个配置文件中获得字符串与文件类型的对应表,然后判断用户指定的文件的真实类型!
JAVA 根据Url 接口 获取文件名称和类型,亲测可用。输入参数地址即可。
其中封装的方法可以从本质上判断一个图片的类型,是PNG还是JPG还是BMP或是其它
主要介绍了Java判断上传图片格式的实例代码,在文中给大家提到了Java使用文件头的类型判断上传的文件是否为图片类型,需要的朋友可以参考下
验证文件类型,看看所选文件是不是图片: 代码如下: //文件类型: protected bool IsAllowableFileType(string FileName) { //从web.config读取判断文件类型限制 string stringstrFileTypeLimit; string
主要介绍了SpringBoot文件上传控制的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...
摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...
两种提交方式,一种是表单,一种是Ajax(选择图片时直接显示出来、可进行文件类型判断和重命名),附jar,直接eclipse导入就能使用。可以改成收取文件的简单的期末作业。
摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...
摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...
摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...
摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
HelloNative.java 准备调用C函数的java文件 HelloNative.lib 用VC编译生成的静态库文件 HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个...
Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
包括其子目录中、将目录中的内容添加到列表、返回文件的URL地址、从文件路径得到文件名、将DOS/Windows格式的路径转换为UNIX/Linux格式的路径、得到文件类型和文件名、得到路径分隔符在文件路径中指定位置后首次出现...
4 判断图片类型合法性。 5 上传前判断图片尺寸。(js方式,ie下实现。火狐未实现) 6 提供java中将图片以blob形式存入数据库的方法(见src/SaveUserInfoAction.java文件)。 已测试通过,供大家参考。如有疑问或问题,...
读写Blob数据,blob数据常以二进制形式存储比较大的文件数据,如图片、视频文件等,本文介绍如何往数据库中读写blob数据,BlobData.java; 使用ResultSet更新数据库,UpdateWithResultSet.java; 使用RowSet,....