java照片查看器源代码

合集下载

国开《JAVA设计程序语言》形考任务三:源代码与输出截图

国开《JAVA设计程序语言》形考任务三:源代码与输出截图

国开《JAVA设计程序语言》形考任务三:源代码与输出截图任务要求本次形考任务要求完成以下两个任务:1. 编写一个Java程序,实现一个简单的计算器功能,能够实现基本的加减乘除运算。

2. 使用截图工具截取程序运行结果的输出,并保存为图片文件。

代码示例import java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个数字: ");double num1 = scanner.nextDouble();System.out.print("请输入运算符(+, -, *, /): ");char operator = scanner.next().charAt(0);System.out.print("请输入第二个数字: "); double num2 = scanner.nextDouble();double result = 0;switch (operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:System.out.println("无效的运算符");return;}System.out.println("计算结果: " + result);}}输出截图![计算器输出截图](calculator_output.png)以上是完成任务三的源代码和输出截图。

Java获取图片的大小、宽、高

Java获取图片的大小、宽、高

Java获取图⽚的⼤⼩、宽、⾼ 1import java.awt.image.BufferedImage;2import java.io.File;3import java.io.FileInputStream;4import java.io.FileNotFoundException;5import java.io.IOException;67import javax.imageio.ImageIO;89public class Picture {10public static void main(String[] args) throws FileNotFoundException, IOException {11 File picture = new File("E:/PrintScreen/StarSky.jpg");12 BufferedImage sourceImg = ImageIO.read(new FileInputStream(picture));1314 System.out.println(String.format("Size: %.1f KB", picture.length()/1024.0));15 System.out.println("Width: " + sourceImg.getWidth());16 System.out.println("Height: " + sourceImg.getHeight());17 }18 }这个没看懂!1import java.io.File;2import java.io.IOException;3import java.util.Iterator;45import javax.imageio.ImageIO;6import javax.imageio.ImageReader;7import javax.imageio.stream.ImageInputStream;89public class Picture {10public static void main(String[] args) {11 String srcPath = "E:/PrintScreen/1.jpg";1213 File file = new File(srcPath);14try {15 Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("jpg");16 ImageReader reader = (ImageReader) readers.next();17 ImageInputStream iis = ImageIO.createImageInputStream(file);18 reader.setInput(iis, true);19 System.out.println("width: " + reader.getWidth(0));20 System.out.println("height: " + reader.getHeight(0));21 } catch (IOException e) {22 e.printStackTrace();23 }24 }25 }##########################################################################注意:图⽚是预先存放在Java Project下的Package中1import java.awt.Image;2import java.awt.image.BufferedImage;3import java.io.IOException;4import .URL;56import javax.imageio.ImageIO;78public class GetImageSize {9public static void main(String[] args) throws IOException {10 BufferedImage bi = null;1112try {13 URL u = GetImageSize.class.getClassLoader().getResource("images/background.png");14 bi = ImageIO.read(u);15 } catch (IOException e) {16 e.printStackTrace();17 }18 Image img = bi;1920 System.out.println(img.getWidth(null));21 System.out.println(img.getHeight(null));22 }23 }。

Java 读取Word中的文本的图片

Java 读取Word中的文本的图片

Java 提取Word中的文本和图片本文将介绍通过Java来提取或读取Word文档中文本和图片的方法。

这里提取文本和图片包括同时提取文档正文当中以及页眉、页脚中的的文本和图片。

使用工具:Spire.Doc for JavaJar文件导入方法(参考):方法1:下载jar文件包。

下载后解压文件,并将lib文件夹下的Spire.Doc.jar文件导入到java程序。

导入效果参考如下:方法2:可通过maven导入。

参考导入方法。

测试文档如下:Java 代码示例(供参考)【示例1】提取Word 中的文本 import com.spire.doc.*; import java.io.FileWriter;import java.io.IOException;public class ExtractText {public static void main(String[] args) throws IOException{//加载测试文档Document doc = new Document();doc.loadFromFile("test.docx");//获取文本保存为StringString text = doc.getText();//将String写入TxtwriteStringToTxt(text,"提取文本.txt");}public static void writeStringToTxt(String content, String txtFileName) throws IOException {FileWriter fWriter= new FileWriter(txtFileName,true);try {fWriter.write(content);}catch(IOException ex){ex.printStackTrace();}finally{try{fWriter.flush();fWriter.close();} catch (IOException ex) {ex.printStackTrace();}}}}文本提取结果:【示例2】提取Word中的图片import com.spire.doc.Document;import com.spire.doc.documents.DocumentObjectType;import com.spire.doc.fields.DocPicture;import com.spire.doc.interfaces.ICompositeObject;import com.spire.doc.interfaces.IDocumentObject;import javax.imageio.ImageIO;import java.awt.image.RenderedImage;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;public class ExtractImg {public static void main(String[] args) throws IOException { //加载Word文档Document document = new Document();document.loadFromFile("test.docx");//创建Queue对象Queue nodes = new LinkedList();nodes.add(document);//创建List对象List images = new ArrayList();//遍历文档中的子对象while (nodes.size() > 0) {ICompositeObject node = (ICompositeObject) nodes.poll();for (int i = 0; i < node.getChildObjects().getCount(); i++) {IDocumentObject child = node.getChildObjects().get(i);if (child instanceof ICompositeObject) {nodes.add((ICompositeObject) child);//获取图片并添加到Listif (child.getDocumentObjectType() == DocumentObjectType.Picture) { DocPicture picture = (DocPicture) child;images.add(picture.getImage());}}}}//将图片保存为PNG格式文件for (int i = 0; i < images.size(); i++) {File file = new File(String.format("图片-%d.png", i));ImageIO.write((RenderedImage) images.get(i), "PNG", file);}}}图片提取结果:(本文完)。

Java实现海康摄像头抓拍图像Windows、Linux

Java实现海康摄像头抓拍图像Windows、Linux

Java实现海康摄像头抓拍图像Windows、Linux先抱怨⼀下,打死都想不到,海康的摄像头SDK居然是⼀个Java类,还有必须的两个jar包(jna.jar,examples.jar)。

⿁能想得到会这么命名。

下⾯开始吧。

Windows1. 把从官⽹下载的SDK(和当前系统对应)解压,把库⽂件整个拷贝到某个⽬录(我是D:\hik\libs),然后把D:\hik\libs和D:\hik\libs\HCNetSDKCom加⼊到系统环境变量path中。

可以尝试从代码中把这两个⽂件夹加⼊path,我没有试成功。

2. 项⽬引⼊jna.jar和examples.jar这两个jar包。

注意:⼀定要⽤官⽹SDK⾥⾯的,千万不要⽤其他版本的jna。

3. 从ClientDemo中把HCNetSDK.java拷贝到⾃⼰的项⽬中(这就是神奇的SDK)。

4. 开始主体,Java代码:public class CameraManager {private static Logger logger = LoggerFactory.getLogger(CameraManager.class);private static HCNetSDK sdk = HCNetSDK.INSTANCE;private static NativeLong userId = new NativeLong(-1);//⽤户登录ID,值为0,1,2...private static NativeLong startChan = new NativeLong(-1); // start channel numberprivate void login(String ip, short port, String username, String pwd){//sdk初始化if (!_DVR_Init()){logger.error("海康SDK初始化失败!" + _DVR_GetLastError());}//注册设备NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30();//登录userId = _DVR_Login_V30(ip, port, username, pwd, deviceInfo);if (userId.intValue() < 0){logger.error("摄像头⽤户登录失败!Err:" + _DVR_GetLastError());}startChan.setValue(deviceInfo.byStartChan);}public boolean takePic(String ip, short port, String username, String pwd) {if (userId.intValue() < 0 || startChan.intValue() < 0) {("执⾏海康摄像机登录,ip[{}],port[{}],username[{}].",ip,port,username);login(ip,port,username,pwd);}("准备拍照,userId:[{}],startChan:[{}]",userId.intValue(),startChan.intValue());//拍照NET_DVR_JPEGPARA strJpeg = new NET_DVR_JPEGPARA();strJpeg.wPicQuality = 1; //图像参数strJpeg.wPicSize = 2;String filePath = "E:\\123q.jpg";boolean b = _DVR_CaptureJPEGPicture(userId, startChan, strJpeg, filePath);//尝试⽤NET_DVR_CaptureJPEGPicture_NEW⽅法,但不是报43就是JDK崩溃.... if(!b){//单帧数据捕获图⽚System.out.println("抓拍失败!" + " err: " + _DVR_GetLastError());}else{System.out.println("抓拍成功");}return b;}public void logout(){_DVR_Logout(userId);_DVR_Cleanup();}}5. 完成。

java读取网络照片的方法

java读取网络照片的方法
Img(“java 中 equals 和==的区别 相信大家已经了解 java 读取网络照片了吧!
if (HttpResult != HttpURLConnection.HTTP_OK) // 不等于 HTTP_OK 说明连接不成功 System.out.print(“fail”); else { int filesize = urlconn.getContentLength(); // 取数据长度 System.out.println(filesize); BufferedInputStream bis=new BufferedInputStream(urlconn.getInputStream()); BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(target)); byte[] buffer = new byte[1024]; //创建存放输入流的缓冲 int num = -1; //读入的字节数 while (true) { num = bis.read(buffer); // 读入到缓冲区 if (num ==-1){ bos.flush(); break; //已经读完 } bos.flush(); bos.write(buffer,0,num); } bos.close(); bis.close(); } } public static void main(String[] args) throws Exception{
java 读取网络照片的方法
大家知道 java 读取网络照片吗?最近一个 Web 项目,需要下载网络图 片,于是又重拾起一些最基础的东西,各种流的数据传递,简单弄了个非常 方便下载网络图片的例子,代码很简单。 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.HttpURLConnection; import java.URL; import java.URLConnection; /*. *读取网络照片,保存到本地 * */ public class GetUrlImg { public static void getUrlImg(String URLName,String target) throws Exception {//URLName 照片地址 // target 本地地址 int HttpResult = 0; //服务器返回的状态 URL url = new URL(URLName); //创建 URL URLConnection urlconn = url.openConnection(); // 试图连接并取得返回状态码 urlconn.connect(); HttpURLConnection httpconn = (HttpURLConnection) urlconn; HttpResult = httpconn.getResponseCode(); System.out.println(HttpResult);

写个简单的18禁图片查看器

写个简单的18禁图片查看器

写个简单的18禁图⽚查看器
简介
这是⼀个⽤C# Winform 写的简易的成⼈图⽚查看器,通过输⼊你的⾝份证号码来判断你是否年满18岁,如果18岁以上,你则允许查看图⽚,否则会提⽰你"未成年",不能查看.原理
就是通过截取⾝份证18位号码中的第7到第10位那是每个公民的出⽣年份,然后与当前系统的年份相⽐较,如果差距⼤于18,说明你成年了,⼩于18则未成年.
界⾯设计
代码
运⾏效果测试
开始运⾏,当前图⽚为隐藏.
随便输⼊⼀串号码数字和字母(数量不⾜18位), 弹出提⽰⾝份证号码不⾜18位!
随便输⼊⼀串数字(仅数字且不⾜18位),弹出提⽰⾝份证号码不⾜18位!
输⼊准确的18位⾝份证号码,弹出提⽰请查看,同时图⽚为可见.
如果你未满18岁,弹出提⽰:"你未成年,不允许看图⽚." 图⽚为不可见!
呵呵⼀个简单的18禁图⽚查看器就写好了! ~~~~~:)。

如何在Eclipse下查看JDK源代码以及java源代码阅读方法(转载)

如何在Eclipse下查看JDK源代码以及java源代码阅读方法(转载)

如何在Eclipse下查看JDK源代码以及java源代码阅读⽅法(转载)不会看JDK源代码,相当于没学过Java。

⽹上不容易找到⼀篇帮助我解决了如何在Eclipse下查看JDK源代码的⽂章。

核⼼提⽰:在Eclipse中查看JDK类库的源代码设置: 1.点 window- Preferences - Java - Installed JRES 2.此时Installed JRES右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 Edit...,会出现⼀个窗⼝(Edit JRE) 3.选中rt.jar⽂件的这⼀项在Eclipse中查看JDK类库的源代码设置:1.点 “window”-> "Preferences" -> "" -> "Installed JRES"2.此时"Installed JRES"右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 "Edit...",会出现⼀个窗⼝(Edit JRE)3.选中rt.jar⽂件的这⼀项:“c:\program files\java\jre_1.5.0_06\lib\rt.jar”点左边的“+” 号展开它,4.展开后,可以看到“Source Attachment:(none)”,点这⼀项,点右边的按钮“Source Attachment...”, 选择你的JDK⽬录下的 “src.zip”⽂件5.⼀路点"ok",结束。

dt.jar是关于运⾏环境的类库,主要是swing的包tools.jar是关于⼀些⼯具的类库rt.jar包含了jdk的基础类库,也就是你在doc⾥⾯看到的所有的类的class⽂件使⽤:可以在 Java 源代码编辑器或代码⽚段编辑窗中选择类型、⽅法或字段的名称,然后对元素的定义打开编辑器。

照片冲印小程序源码

照片冲印小程序源码

照片冲印小程序源码下面是一个简单的照片冲印小程序源码示例,代码采用Python语言编写,共计1200字以上。

```python# -*- coding:utf-8 -*-import osdef main(:print("欢迎使用照片冲印小程序!")while True:print("请选择操作:")print("1. 查看照片")print("2. 冲印照片")print("3. 删除照片")print("4. 退出程序")choice = input("请输入操作编号:")if choice == "1":view_photoselif choice == "2":print("请输入照片路径:")path = inputprint("请输入冲印数量:")num = inputprint("是否需要加急冲印?(是/否)") is_urgent = inputprint("正在冲印照片...")print("照片路径:", path)print("冲印数量:", num)print("是否加急:", is_urgent) print("照片冲印完成!")elif choice == "3":print("请输入要删除的照片路径:") path = inputif os.path.exists(path):os.remove(path)print("照片删除成功!")else:print("照片不存在!")elif choice == "4":print("程序已退出,再见!")breakelse:print("输入无效,请重新输入!")def view_photos(:print("正在查看照片...")#这里可以加入查看照片的相关代码print("照片查看完成!")if __name__ == "__main__":main```这是一个简单的照片冲印小程序,提供了查看照片、冲印照片、删除照片和退出程序的功能。

java图片识别文字(中英文混合)

java图片识别文字(中英文混合)

java图⽚识别⽂字(中英⽂混合)调⽤ tess4j 库来识别图⽚⽂字依赖的maven库<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.26</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.26</version></dependency><!-- https:///artifact/net.sourceforge.tess4j/tess4j --><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>5.1.1</version></dependency>图⽚识别⽂字package com;import net.sourceforge.tess4j.ITesseract;import net.sourceforge.tess4j.Tesseract1;import net.sourceforge.tess4j.TesseractException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;public class TestOCR {private static final Logger logger = LoggerFactory.getLogger(TestOCR.class);public static void main(String[] args) {String result = doOCR("字库位置", "要识别的图⽚地址");System.out.println(result);}private static String doOCR(String dataPath, String imgPath) {File imageFile = new File(imgPath);ITesseract instance = new Tesseract1();//字库位置instance.setDatapath(dataPath);//eng+chi_sim代表中英⽂混合instance.setLanguage("eng+chi_sim");//eng :英⽂ chi_sim :简体中⽂try {return instance.doOCR(imageFile);} catch (TesseractException e) {logger.error("", e);}return "";}}字库下载下载中⽂包:选择chi_sim.traineddata⽂件进⾏下载,英⽂包在tess4j jar包中可以获取。

java调用图片等的相对路径问题

java调用图片等的相对路径问题

import javax.swing.ImageIcon;import java.awt.Image;import java.awt.Toolkit;import java.io.File;import java.applet.Applet;import java.applet.AudioClip;/**** <p>Title: 获取资源</p>* <p>Description: </p>* <p>Copyright: Copyright (c) 2008</p>* <p>Company: </p>* @author landix* @version 1.0*/public class ResourceManager {//系统图片路径private static String IMAGE_RESOURCE_PA TH = "com/landix/oamq/client/images/";//系统音频路径private static String SOUND_RESOURCE_PATH = "com/landix/oamq/client/sound/";//系统文件路径private static String FILE_RESOURCE_PATH = "";private ResourceManager() {}public static ImageIcon getIcon(String imageName) {if (imageName == null) return(null);ImageIcon icon = null;try {//通过类加载器加载图片资源,作为图标对象的参数icon = new ImageIcon(ResourceManager.class.getClassLoader().getResource(IMAGE_RESOURCE_ PATH + imageName));} catch (Exception ex) {System.out.println ("### Exception in getIcon() : \r\n" + IMAGE_RESOURCE_PATH + imageName + " " + ex.toString());}return icon;}public static Image getImage(String imageName) {if (imageName == null) return(null);Image image = null;try {//通过类加载器加载图片资源,作为图标对象的参数image = Toolkit.getDefaultToolkit().getImage(ResourceManager.class.getClassLoader().getResource(IMAGE_RESOURCE_PATH + imageName));} catch (Exception ex) {System.out.println ("### Exception in getIcon() : \r\n" + IMAGE_RESOURCE_PATH + imageName + " " + ex.toString());}return image;}public static AudioClip getSound(String soundName) {if (soundName == null) return(null);AudioClip wowo = null ;try {//通过类加载器加载声音资源,作为声音对象的参数wowo = Applet.newAudioClip(ResourceManager.class.getClassLoader().getResource(SOUND_RESOURCE_PATH + soundName));} catch ( Exception ex ) {System.out.println ("### Exception in getIcon() : \r\n" + SOUND_RESOURCE_PATH + soundName + " " + ex.toString());}return wowo;}public static File getFile(String fileName) {if (fileName == null) return(null);File file = null;try {//通过类加载器加载文件资源,作为文件对象的参数file = new File(ResourceManager.class.getClassLoader().getResource(FILE_RESOURCE_P ATH + fileName).toString());} catch (Exception ex) {System.out.println ("### Exception in getIcon() : \r\n" + FILE_RESOURCE_PATH + fileName + " " + ex.toString());}return file;} }。

java项目案例

java项目案例

java项目案例随着传统的计算机编程语言的不断发展,Java语言在计算机世界已经被称为非常普遍的计算机编程语言之一。

它的使用也是计算机领域中最受欢迎的语言之一,几乎可以应用到任何编程项目中。

本文就介绍一个采用Java语言编写的实际项目案例,其中用到了Java语言的各种功能,以便于读者对Java语言有一个更全面的认识。

该项目案例是基于Java语言实现的一个移动端应用程序,用于实现图片识别功能。

本项目主要使用的技术是Java语言的图像处理技术。

这是一个大型的开源项目,在开发过程中,采用了面向对象编程(OOP)的方法,主要目的是将图像处理技术与用户界面交互技术结合在一起,实现一个可以操作图像,并能够根据图像上的特征进行识别的程序。

首先,介绍一下开发过程中用到的具体技术:(1)用于处理图像的Java图像处理库(JIMP):该库提供了一系列的图像处理操作,比如图像的转换、旋转、滤镜、添加水印等功能。

(2)云端图像处理服务:使用了一个云端服务的API,用于实现复杂的图像处理操作,比如图像的模糊、锐化、亮度调整等。

(3)计算机视觉检测技术:使用了一款针对图像处理任务的计算机视觉检测技术,以便于侦测、识别、分类图像上出现的物体和文字。

(4)Android移动端平台:基于Android平台的应用开发环境,用于将程序编译、测试和发布到手机端。

然后,详细介绍一下开发者采用了Java语言来完成上述功能:(1)首先,使用Java图像处理技术来实现图像的处理,例如图像的缩放、旋转、调整亮度等。

(2)然后,使用了云端服务,完成复杂的图像处理工作,比如模糊、锐化、添加水印等工作。

(3)接着,使用计算机视觉检测技术,实现图像的识别、分类和检测功能。

(4)最后,使用Android移动端平台来实现应用的编译、测试和发布。

以上就是使用Java语言开发的项目案例,实现了一种基于移动端的图像识别的程序。

由此可见,Java语言的功能极其强大,可以满足各种不同的应用场景,同时,它的可移植性也使它更加适合移动端程序开发。

通过Java程序获取Word中指定图片的坐标位置

通过Java程序获取Word中指定图片的坐标位置

通过Java程序获取Word中指定图⽚的坐标位置之前给⼤家介绍过,感兴趣的朋友点击查看下,今天给⼤家介绍如何通过Java 程序获取Word中指定图⽚的坐标位置,感兴趣的朋友⼀起看看吧!程序运⾏环境:Word测试⽂档:.docx 2013Free Spire.doc.jar 3.9.0IntelliJ IDEAJDK 1.8.0⽅法步骤:1. 指定⽂件路径,本次测试代码路径为项⽬⽂件夹路径。

即在IDEA项⽬⽂件下存⼊⽤于测试的Word⽂档,如:C:\Users\Administrator\IdeaProjects\Picture_Doc\input.docx。

⽂件路径也可⾃定义为其他路径。

2. 在程序中引⼊jar⽂件,如下图:3.Java程序代码import com.spire.doc.*;import com.spire.doc.documents.DocumentObjectType;import com.spire.doc.documents.Paragraph;import com.spire.doc.fields.DocPicture;public class GetCoordinatesOfPicture {public static void main(String[] args) {//加载Word测试⽂档Document doc = new Document();doc.loadFromFile("input.docx");//遍历sectionfor (int a = 0; a<doc.getSections().getCount();a++){Section section = doc.getSections().get(a);//遍历paragraph段落for (int b =0 ;b<section.getParagraphs().getCount();b++){Paragraph paragraph = section.getParagraphs().get(b);//遍历段落中的对象for (int i = 0; i < paragraph.getChildObjects().getCount(); i++){DocumentObject docobj = paragraph.getChildObjects().get(i);//判断对象是否为图⽚if (docobj.getDocumentObjectType()== DocumentObjectType.Picture){DocPicture picture = (DocPicture) docobj ;if (picture.getTitle().equals("图⽚4"))//定位标题为“图⽚4”的图⽚{//获取图⽚坐标位置float x = picture.getHorizontalPosition();float y = picture.getVerticalPosition();System.out.println("坐标位置为:\n X=" + x + " Y=" + y);}}}}}}}坐标获取结果:到此这篇关于通过Java 程序获取Word中指定图⽚的坐标位置的⽂章就介绍到这了,更多相关java获取word指定图⽚坐标位置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

java读取tiff格式图像、像素修改以及格式转换

java读取tiff格式图像、像素修改以及格式转换

java读取tiff格式图像、像素修改以及格式转换javatiff_0">java读取tiff图像的踩坑总结:1.环境:spring boot+maven2.包:imageio ,jai,codec,metadata;还有⼀个从github上⾯下载的。

这⼏个包都不⼤好找,等后续补上下载路径。

import javax.imageio.__;import javax.media.jai.JAI;import com.sun.media.jai.codec.;import com.github.jaiimageio.impl.plugins.tiff.*;主要就是这⼏个了,下⾯是接触到的有关代码。

注意:从外部下载的包加载到本地maven仓库需要使⽤cmd打开输⼊mvn install:install-file -DgroupId=com.sun.media -DartifactId=jai_codec -Dversion=1.1.3 -Dpackaging=jar -Dfile=E:\BaiduNetdiskDownload\jai_codec-1.1.3.jar metadatatiff_15">⾸先:metadata,是tiff图像的元数据,下⾯有两个⽅式。

1.调⽤tiffMetadataReader包,此⽅法⽐较简单,引⼊的包:import com.drew.imaging.tiff.TiffMetadataReader;import com.drew.imaging.tiff.TiffProcessingException;import com.drew.metadata.Directory;import com.drew.metadata.Metadata;import com.drew.metadata.Tag;import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.Iterator;//详细过程:File file = new File("C:/Users/86156/Desktop/Show.tif");BufferedImage bufferedImage = ImageIO.read(file);String[] image = ImageIO.getWriterFileSuffixes();System.out.println(image);System.out.println(bufferedImage);try{Metadata metadata = TiffMetadataReader.readMetadata(file);//输出元数据信息System.out.println(metadata);}catch (tiffProcessingException e){System.out.println("发⽣进程异常");System.out.println(e);}catch (IOException e) {System.out.println("发⽣读取异常");}try{Metadata metadata = TiffMetadataReader.readMetadata(file);Iterable<Directory> a = metadata.getDirectories();for(Directory directory : a) {Iterator<Tag> tag = directory.getTags().iterator();while (tag.hasNext()) {System.out.println(tag.next());}}}catch(TiffProcessingException e){System.out.println("发⽣异常!");System.out.println(e);}System.out.println("执⾏完毕");如果出现读取时是空值:执⾏部分结果如下:包含了tiff图像的长宽和位数即16,这也为后⾯的⼤坑做了铺垫。

java的imageview使用方法

java的imageview使用方法

java的imageview使用方法ImageView是Android中提供的一种用于显示图片的控件,使用起来非常的方便。

在Java中,也可以使用ImageView对图片进行操作和展示。

下面将介绍一下Java中的ImageView使用方法。

步骤一:创建一个ImageView控件创建ImageView的方法如下:```ImageView imageView = new ImageView();```这里可以根据需要设置控件的宽度、高度、位置等属性。

步骤二:加载图片资源要使ImageView真正展示图片,需要将图片资源加载到ImageView中。

可以使用以下方法将图片资源加载到ImageView中:```Image image = new ImageIcon("图片路径").getImage(); imageView = new ImageView(image);```上面的代码中,首先通过ImageIcon构造函数将图片资源路径传入,得到一个ImageIcon对象,然后通过getImage()方法获取到Image对象,最后将Image对象加载到ImageView中。

步骤三:设置图片大小如果需要对图片的大小进行控制,可以使用以下方法:```imageView.setFitWidth(300);imageView.setFitHeight(200);```上面的代码中,首先使用setFitWidth()方法设置图片的宽度,使用setFitHeight()方法设置图片的高度。

步骤四:设置图片位置在Java中,ImageView控件的位置可以在父控件中设置。

可以使用以下方法将ImageView添加到父控件中:```pane.getChildren().add(imageView);```其中,pane是父控件的名字。

步骤五:显示图片最后一步是显示图片,只需启动Java应用程序即可显示图片。

Java读取图片文件的类型(MimeType)

Java读取图片文件的类型(MimeType)

Java读取图⽚⽂件的类型(MimeType)⼀、问题描述在项⽬开发的时候,我们经常会遇到⼀类⽂件上传的问题,就是获取图⽚是哪种格式。

很多情况下,很多⼈都是⽤后缀名去判断,如下所⽰。

if(filename.endsWith(".png") || filename.endsWith(".jpg")){//保存图⽚}else{throw new IOException("Error file format !");}但是这种⽅式相当不可靠,我们可以尝试将zip⽂件、rmvb⽂件、css、js修改后缀名位jpg或者png上传,也可以上传到服务器,这就造成我们服务器上出现了脏数据。

此外,对于有些图⽚⽂件,修改成错误的扩展名,有些浏览器可能⽆法显⽰出此图⽚。

⼆、解决⽅案在计算机系统中,媒体类型(MimeType)的⽂件都有【标识符】,zip、图⽚本⾝属于媒体⽂件,因此我们可以通过编解码的⽅式判断图⽚是否合法。

1、判断标⽰⽅法private static boolean isBMP(byte[] buf){byte[] markBuf = "BM".getBytes(); //BMP图⽚⽂件的前两个字节return compare(buf, markBuf);}private static boolean isICON(byte[] buf) {byte[] markBuf = {0, 0, 1, 0, 1, 0, 32, 32};return compare(buf, markBuf);}private static boolean isWEBP(byte[] buf) {byte[] markBuf = "RIFF".getBytes(); //WebP图⽚识别符return compare(buf, markBuf);}private static boolean isGIF(byte[] buf) {byte[] markBuf = "GIF89a".getBytes(); //GIF识别符if(compare(buf, markBuf)){return true;}markBuf = "GIF87a".getBytes(); //GIF识别符if(compare(buf, markBuf)){return true;}return false;}private static boolean isPNG(byte[] buf) {byte[] markBuf = {(byte) 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A}; //PNG识别符// new String(buf).indexOf("PNG")>0 //也可以使⽤这种⽅式return compare(buf, markBuf);}private static boolean isJPEGHeader(byte[] buf) {byte[] markBuf = {(byte) 0xff, (byte) 0xd8}; //JPEG开始符return compare(buf, markBuf);}private static boolean isJPEGFooter(byte[] buf)//JPEG结束符{byte[] markBuf = {(byte) 0xff, (byte) 0xd9};return compare(buf, markBuf);}2、核⼼⽅法/*** 获取⽂件的mimeType* @param filename* @return*/private static String getMimeType(String filename){try {String mimeType = readType(filename);return String.format("image/%s", mimeType);} catch (IOException e) {e.printStackTrace();}return null;}/*** 读取⽂件类型* @param filename* @return* @throws IOException*/private static String readType(String filename) throws IOException {FileInputStream fis = null;try {File f = new File(filename);if(!f.exists() || f.isDirectory() || f.length()<8) {throw new IOException("the file ["+f.getAbsolutePath()+"] is not image !");}fis= new FileInputStream(f);byte[] bufHeaders = readInputStreamAt(fis,0,8);if(isJPEGHeader(bufHeaders)){long skiplength = f.length()-2-8; //第⼀次读取时已经读了8个byte,因此需要减掉byte[] bufFooters = readInputStreamAt(fis, skiplength, 2);if(isJPEGFooter(bufFooters)){return "jpeg";}}if(isPNG(bufHeaders)){return "png";}if(isGIF(bufHeaders)){return "gif";}if(isWEBP(bufHeaders)){return "webp";}if(isBMP(bufHeaders)){return "bmp";}if(isICON(bufHeaders)){return "ico";}throw new IOException("the image's format is unkown!");} catch (FileNotFoundException e) {throw e;}finally{try {if(fis!=null) fis.close();} catch (Exception e) {}}}/*** 标⽰⼀致性⽐较* @param buf 待检测标⽰* @param markBuf 标识符字节数组* @return返回false标⽰标⽰不匹配*/private static boolean compare(byte[] buf, byte[] markBuf) {for (int i = 0; i < markBuf.length; i++) {byte b = markBuf[i];byte a = buf[i];if(a!=b){return false;}}return true;}/**** @param fis 输⼊流对象* @param skiplength 跳过位置长度* @param length 要读取的长度* @return字节数组* @throws IOException*/private static byte[] readInputStreamAt(FileInputStream fis, long skiplength, int length) throws IOException {byte[] buf = new byte[length];fis.skip(skiplength); //int read = fis.read(buf,0,length);return buf;}3、测试代码正常测试public class ImageType {public static void main(String[] args) {String filename = "oschina.jpg";String type = getMimeType(filename);System.out.println(type);}}输出image/jpeg修改扩展名测试①修改oschina.jpeg为oschina.png②复制oschina.png删除扩展名public class ImageType {public static void main(String[] args) {String filename = "oschina.png";String type = getMimeType(filename);System.out.println(type);filename = "oschina";type = getMimeType(filename);System.out.println(type);}}输出image/jpegimage/jpeg。

图片查看器

图片查看器

Java程序设计学期作业项目报告题目图片查看器姓名薛晓欣学号 2013041269年级 2013级2班系别物联网学院计算机信息与工程学院指导教师李红宇学期 2014~2015学年第二学期2015年07月1日目录1设计内容 (1)2设计要求 (1)3总体设计 (1)4详细设计 (4)5测试分析 (17)6总结 (19)图片查看器1设计内容本次设计的图片查看器实现了在用户选定的文件目录下循环浏览指定后缀的图片文件,并且可以对选择的图片进行放大,缩小,左旋,右旋,另存,彻底删除等操作。

2设计要求随着数字产品渐进人们的生活,网络通信技术、图像处理技术以及多媒体技术的发展,越来越多的用户希望能够对已有的数字图片进行查看并能够实现简单的操作。

本图片查看器以其简洁明了易操作的特点实现图片查看的基本功能,从而也就满足了用户的基本要求。

3总体设计(1)系统功能分析本系统要用到以下的Java编程技术实现的功能:图像显示功能:客户需要显示图片,这将由图像显示功能来完成。

显示图片的时候,用到了双缓冲技术来消除闪烁问题。

(2)类图系统中用到了一些基本类、实现了一些接口。

系统所用到的类如图1所示:图1 系统类图4详细设计1)程序中引用的类①JPanel类程序中定义了三个Jpanel类分别是:pathBar, picContainer, ctrBar。

用于图片查看器的整体布局。

其中pathBar为顶部路径栏,picContainer为图片显示区域,ctrBar为底部控制栏。

②JLabel类程序中定义了类名为pathInfo的JLabel类,用于实现顶部路径栏,底部控制栏按钮的文字显示。

③JButton类程序中定义了多个JButton类:openbtn, prebtn, nextbtn, zoominbtn, zoomoutbtn, oripicbtn, angleleftbtn, anglerightbtn,exitbtn,deletebtn,sav;为查看器的按钮。

如何利用java读取网络照片

如何利用java读取网络照片

如何利用java读取网络照片如何利用java读取网络照片Java语言作为静态面向对象编程语言的.代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

以下是店铺为大家搜索整理的如何利用java读取网络照片,希望能给大家带来帮助!import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import .HttpURLConnection;import .URL;import .URLConnection;/*. *读取网络照片,保存到本地* */public class GetUrlImg {public static void getUrlImg(String URLName,String target) throws Exception {//URLName照片地址// target本地地址int HttpResult = 0; //服务器返回的状态URL url = new URL(URLName); //创建URLURLConnection urlconn = url.openConnection(); // 试图连接并取得返回状态码urlconn.connect();HttpURLConnection httpconn = (HttpURLConnection) urlconn;HttpResult = httpconn.getResponseCode();System.out.println(HttpResult);if (HttpResult != HttpURLConnection.HTTP_OK) // 不等于HTTP_OK说明连接不成功System.out.print("fail");else {int filesize = urlconn.getContentLength(); // 取数据长度System.out.println(filesize);BufferedInputStream bis=new BufferedInputStream(urlconn.getInputStream());BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(target));byte[] buffer = new byte[1024]; //创建存放输入流的缓冲int num = -1; //读入的字节数while (true) {num = bis.read(buffer); // 读入到缓冲区if (num ==-1){bos.flush();break; //已经读完}bos.flush();bos.write(buffer,0,num);}bos.close();bis.close();}}public static void main(String[] args) throws Exception{GetUrlImg.getUrlImg("java中equals和==的区别下载全文。

JAVA语言编程形考任务四的源代码图片

JAVA语言编程形考任务四的源代码图片

JAVA语言编程形考任务四的源代码图片以下是我为您准备的JAVA语言编程形考任务四的源代码文本格式:/** JAVA语言编程形考任务四的源代码*/public class ExamTaskFour {public static void main(String[] args) {// 输出"Hello, World!"System.out.println("Hello, World!");// 定义一个整数变量并赋值int number = 10;// 输出整数变量的值System.out.println("整数变量的值为:" + number);// 定义一个字符串变量并赋值String message = "欢迎使用JAVA语言编程形考任务四的源代码";// 输出字符串变量的值System.out.println("字符串变量的值为:" + message);// 计算两个整数的和并输出int sum = 5 + 7;System.out.println("两个整数的和为:" + sum);// 计算两个整数的差并输出int difference = 15 - 8;System.out.println("两个整数的差为:" + difference);// 计算两个整数的乘积并输出int product = 4 * 6;System.out.println("两个整数的乘积为:" + product);// 计算两个整数的商并输出int quotient = 20 / 4;System.out.println("两个整数的商为:" + quotient);// 输出当前日期和时间System.out.println("当前日期和时间为:" + new Date()); }}。

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

package ioStream;import java.awt.AWTEvent;import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.AWTEventListener;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.MouseWheelEvent;import java.awt.event.MouseWheelListener;import java.awt.geom.AffineTransform;import java.io.File;import java.util.LinkedList;import java.util.List;import javax.swing.ImageIcon;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Timer;import javax.swing.UIManager;import javax.swing.filechooser.FileNameExtensionFilter;/** 该代码意在实现照片查看器的功能* 当按下“右箭头”时浏览下一张图片* 当按下“左箭头"时浏览上一张图片* 实现循环浏览* 当按下"Ecs"时推出全屏浏览模式* 当按下CTRL+“上箭头”时,全屏显示* 只能浏览指定文件夹下面的所支持格式的图片(gif,jpg,png)*链表的大小与他的最大角标相隔1*/public class PicsViewer {static JFrame frame0;//原始的全屏显示的窗口static int SWidth=Toolkit.getDefaultToolkit().getScreenSize().width;static int SHeight=Toolkit.getDefaultToolkit().getScreenSize().height;static Image icon=(new ImageIcon("PicsViewer/img.png")).getImage();//框架图标JFileChooser chooser; //声明一个文件选择器对象static JPanel imgjp;static Image img0=(new ImageIcon("image/cat.png")).getImage();//默认的一张图片File files;static int j=0;static int k=0;static File root;static int i=0;Timer T00;String[] Str;//获取文件名字符串static Image img;static int xCoor,yCoor;//打印图片的左上角坐标static int PWidth,PHeight;//图片的宽高(小于屏幕宽高的时候的)static int PWidth0,PHeight0;//图片宽高大于屏幕宽高的时候的图片宽高String CPath;//直接获得的路径String newPath;//经过转换后的路径static List<Image> list=new LinkedList<Image>();int index=0;static int index0=0;static double xCoor0=1,yCoor0=1;//图片在X轴缩放的倍数,图片在Y轴的缩放倍数;static boolean isFull=true;//是否全屏显示static int now;//当前正在使用的图片public PicsViewer(){frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackground(new Color(51,51,51));frame0.add(imgjp);frame0.setTitle("PicsViewer1.0");frame0.setSize(SWidth,SHeight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//不设置窗口的位置,是因为窗口默认的位置就是在桌面的左上角frame0.setIconImage(icon);//设置窗口图标frame0.setVisible(true);/** 程序一启动就弹出文件选择对话框让用户选择所要浏览的图片*/try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");//设置为当前操作系统的外观JFileChooser chooser = new JFileChooser();chooser.setDialogTitle("请选择要查看的图片");chooser.addChoosableFileFilter(new FileNameExtensionFilter("常见图片格式", "jpg", "gif", "png"));chooser.showOpenDialog(frame0);int returnVal = chooser.showOpenDialog(frame0);if(returnVal == JFileChooser.APPROVE_OPTION) {img=(new ImageIcon(chooser.getSelectedFile().toString())).getImage();CPath=chooser.getCurrentDirectory().toString()+System.getProperty("file.separator");newPath=CPath.replaceAll("\\\\","/");//路径转换root=new File(newPath);img0=img;imgjp.repaint();findImage(root);}} catch (Exception evt) {}Toolkit toolkit = Toolkit.getDefaultToolkit();toolkit.addAWTEventListener(new ShortcutKeyListener(), AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK| AWTEvent.WINDOW_EVENT_MASK);/*添加键盘监听事件,当点击键盘上的方向键右键时浏览下一张图片,点击左箭头浏览上一张,当按下上箭头时对当前图片进行放大操作* 当按下下箭头时,对当前浏览的图片进行缩小操作* 同时添加鼠标滚轮监听事件,也对当前图片进行缩放操作**/imgjp.addMouseWheelListener(new MouseWheelListener(){public void mouseWheelMoved(MouseWheelEvent e){if(e.getWheelRotation()<0){//如果鼠标滚轮向上滚动,则放大图片}else{//否则缩小图片}}});}public void findImage(File dir){File[] files=dir.listFiles();//得到当前路径下的所有文件和文件夹for(int i=0; i<files.length; i++){Str=new String[files.length];Str[i]=files[i].getAbsolutePath();//将路径和文件名存入字符串数组//使用链表替代数组if(Str[i].endsWith(".jpg")||Str[i].endsWith(".gif")||Str[i].endsWith(".png")==true){list.add(index,(new ImageIcon(Str[i])).getImage());index++;}}}//画图的算法有点问题????static class ImgsPanel extends JPanel{private static final long serialVersionUID = 1L;public void paintComponent(Graphics g){super.paintComponent(g);Graphics2D G2=(Graphics2D)g;AffineTransform Trans=new AffineTransform();PWidth=img0.getWidth(null);PHeight=img0.getHeight(null);if(PWidth<=SWidth&&PHeight<=SHeight){xCoor=(SWidth-PWidth)/2;yCoor=(SHeight-PHeight)/2;PWidth0=PWidth;PHeight0=PHeight;Trans.scale(xCoor0,yCoor0);//对图片的缩放操作// G2.setTransform(Trans);}if(PWidth>SWidth||PHeight>SHeight){yCoor0=SHeight/(PHeight*1.0);PHeight0=SHeight;PWidth0=(int)(PWidth*yCoor0);xCoor0=yCoor0;xCoor=(SWidth-PWidth0)/2;yCoor=-(PHeight0-SHeight)/2;Trans.scale(xCoor0,yCoor0);//对图片的缩放操作// G2.setTransform(Trans);}G2.drawImage(img0,xCoor,yCoor,PWidth0,PHeight0,this);}}static class Tim implements ActionListener{public void actionPerformed(ActionEvent e){//看来变量最好不要用相同的变量名img0=(Image)(list.get(index0));index0++;if(index0==list.size()){index0=0;img0=(Image)(list.get(index0));index0++;imgjp.repaint();}imgjp.repaint();}}static class ShortcutKeyListener implements AWTEventListener { public void eventDispatched(AWTEvent e) {if (e.getClass() == KeyEvent.class) {// 被处理的事件是键盘事件.KeyEvent keyEvent = (KeyEvent) e;if (keyEvent.getID() == KeyEvent.KEY_PRESSED) {keyPressed(keyEvent);} else if (keyEvent.getID() == KeyEvent.KEY_RELEASED) {keyReleased(keyEvent);}}}/** 当只有一张图片是抛出异常,不能使用左右方向键,待解决*/private void keyPressed(KeyEvent e) {switch(e.getKeyCode()){case KeyEvent.VK_RIGHT: if(list.size()!=1){img0=(Image)(list.get(index0));now=index0;index0++;if(index0==list.size()-1){index0=0;img0=(Image)(list.get(index0));now=index0;index0++;imgjp.repaint();}imgjp.repaint();}else{img0=(Image)(list.get(index0));imgjp.repaint();}break;case KeyEvent.VK_LEFT:if(list.size()!=1){if(index0>0){img0=(Image)(list.get(index0));now=index0;index0--;imgjp.repaint();}if(index0<0){index0=list.size()-1;img0=(Image)(list.get(index0));now=index0;index0--;imgjp.repaint();}}else{index0=list.size()-1;img0=(Image)(list.get(index0));now=index0;index0--;imgjp.repaint();}break;case KeyEvent.VK_ESCAPE:isFull=false;frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackground(new Color(51,51,51));frame0.add(imgjp);frame0.setTitle("PicsViewer1.0");frame0.setSize(SWidth,SHeight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame0.setIconImage(icon);//设置窗口图标frame0.setVisible(true);break;}if ((e.isControlDown() == true)&& (e.getKeyCode() == KeyEvent.VK_UP)) { isFull=true;frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackground(new Color(51,51,51));frame0.add(imgjp);frame0.setTitle("PicsViewer1.0");frame0.setSize(SWidth,SHeight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame0.setIconImage(icon);frame0.setVisible(true);}}private void keyReleased(KeyEvent event) {}}public static void main(String[] args){new PicsViewer();}}。

相关文档
最新文档