激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java圖片處理之獲取gif圖一幀圖片的兩種方法

Java圖片處理之獲取gif圖一幀圖片的兩種方法

2021-01-27 11:07大大的微笑 Java教程

這篇文章主要給大家介紹了關(guān)于Java圖片處理之獲取gif圖一幀圖片的兩種方法,分別是利用Java原生代碼和使用im4java調(diào)用ImageMagick來實(shí)現(xiàn),兩種方法都給出來示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。

前言

本文主要給大家介紹了關(guān)于Java獲取gif圖一幀圖片的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

一、Java原生代碼實(shí)現(xiàn)gif獲取一幀圖片

先看測試代碼:

?
1
2
3
4
5
6
7
8
public static void main(String[] args) {
   /*這兒填寫你存放要縮小圖片的文件夾全地址*/
  String src = "c:/5.gif" ;
  /*這兒填寫你轉(zhuǎn)化后的圖片存放的文件夾*/
  String tar = "c:/5_frame_2.jpg";
//  獲取GIF圖片一幀圖片
  getGifOneFrame(src, tar, 2);
 }

核心代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
FileImageInputStream in = null;
FileImageOutputStream out = null;
try {
 in = new FileImageInputStream(new File(src));
 ImageReaderSpi readerSpi = new GIFImageReaderSpi();
 GIFImageReader gifReader = (GIFImageReader) readerSpi.createReaderInstance();
 gifReader.setInput(in);
 int num = gifReader.getNumImages(true);
// 要取的幀數(shù)要小于總幀數(shù)
 if (num > frame) {
  ImageWriterSpi writerSpi = new GIFImageWriterSpi();
  GIFImageWriter writer = (GIFImageWriter) writerSpi.createWriterInstance();
  for (int i = 0; i < num; i++) {
   if (i == frame) {
    File newfile = new File(target);
    out = new FileImageOutputStream(newfile);
    writer.setOutput(out);
//    讀取讀取幀的圖片
    writer.write(gifReader.read(i));
    return true;
   }
  }
 }

主要是創(chuàng)建GIFImageReader對象,然后獲取要取的那一幀圖片

使用im4java調(diào)用ImageMagick獲取gif一幀圖片

先看測試代碼

?
1
2
3
4
5
6
7
8
9
public static void main(String[] args) throws Exception {
 
 String src = "c:/test2.gif";
 String target = "c:/test2_frame_1.jpg";
 
 getGifOneFrame(src, target, 1);
 
 System.out.println("完成");
}

主要實(shí)現(xiàn):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
  * 獲取GIF圖片一幀圖片 - 同步執(zhí)行
  * @param src  源圖片路徑
  * @param target 目標(biāo)圖片路徑
  * @param frame  獲取第幾幀
  * @throws Exception
  */
 public static boolean getGifOneFrame(String src, String target, int frame) throws Exception {
  if(!src.endsWith(".gif")){
   return false;
  }
  createDirectory(target);
  IMOperation op = new IMOperation();
  op.addImage(src + "["+frame+"]");
  op.addImage(target);
  ConvertCmd cmd = (ConvertCmd) getImageCommand("convert");
  cmd.setAsyncMode(false);
  cmd.run(op);
  return true;
 }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:http://blog.csdn.net/chwshuang/article/details/64923354

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产午夜精品久久久久 | 国产成人强伦免费视频网站 | 久久国产精品无码网站 | av日韩一区二区 | 久久精品成人影院 | 精精国产xxxx视频在线播放7 | 欧美a久久 | 激情五月少妇a | 日韩激情 | 9999久久 | 久久亚洲精品久久国产一区二区 | 在线天堂中文在线资源网 | 在线看一区二区三区 | 久久亚洲精品国产一区 | 免费国产在线精品 | 在线小视频国产 | 亚洲成人精品久久久 | 成人一级毛片 | 国产精品久久久久久模特 | 91在线色| 国产一区二区三区视频在线观看 | 欧美高清另类自拍视频在线看 | 国产成人精品视频在线 | 亚洲一区动漫 | 久国久产久精永久网页 | 国产一区毛片 | 欧美性生活久久久 | 日本中文字幕高清 | 日本免费aaa观看 | 懂色粉嫩av久婷啪 | h视频免费看 | 一级黄色免费 | 国产精品美女久久久免费 | 免费99热在线观看 | 手机在线看片国产 | 国产一区二区三区在线免费观看 | 国产一区二区三区四区精 | 黄色a级片视频 | mmmwww| 91精品国产乱码久 | 91精品国产99久久久久久红楼 |