導航:首頁 > 編程語言 > java視頻縮略圖生成

java視頻縮略圖生成

發布時間:2022-10-24 09:40:34

① 如何用java為文件生成縮略圖

public static boolean scale(String imagepath,String newpath){
// 返回一個 BufferedImage,作為使用從當前已注冊 ImageReader 中自動選擇的 ImageReader 解碼所提供 File 的結果

BufferedImage image=null;
try {
image = ImageIO.read(new File(imagepath));
} catch (IOException e) {
System.out.println("讀取圖片文件出錯!"+e.getMessage());
return false;
}

// Image Itemp = image.getScaledInstance(300, 300, image.SCALE_SMOOTH);
double Ratio = 0.0;

if ((image.getHeight() > 300) ||(image.getWidth() > 300)) {
if (image.getHeight() > image.getWidth())
//圖片要縮放的比例
Ratio = 300.0 / image.getHeight();
else
Ratio = 300.0 / image.getWidth();
}
// 根據仿射轉換和插值類型構造一個 AffineTransformOp。
AffineTransformOp op = new AffineTransformOp(AffineTransform
.getScaleInstance(Ratio, Ratio), null);
// 轉換源 BufferedImage 並將結果存儲在目標 BufferedImage 中。
image = op.filter(image,null);
//image.getScaledInstance(300,300,image.SCALE_SMOOTH);

FileOutputStream out=null;
try {
out = new FileOutputStream(newpath);
ImageIO.write((BufferedImage)image,"bmp",out);
out.close();
} catch (Exception e) {
System.out.println("寫圖片文件出錯!!"+e.getMessage());
return false;
}
return true;
}

② java上傳圖片 生成縮略圖,如果上傳的圖片尺寸比較小就壓縮處理

//將圖按比例縮小。
public static BufferedImage resize(BufferedImage source, int targetW, int targetH) {
// targetW,targetH分別表示目標長和寬
int type = source.getType();
BufferedImage target = null;
double sx = (double) targetW / source.getWidth();
double sy = (double) targetH / source.getHeight();
//這里想實現在targetW,targetH范圍內實現等比縮放。如果不需要等比縮放
//則將下面的if else語句注釋即可
if(sx>sy)
{
sx = sy;
targetW = (int)(sx * source.getWidth());
}else{
sy = sx;
targetH = (int)(sy * source.getHeight());
}
if (type == BufferedImage.TYPE_CUSTOM) { //handmade
ColorModel cm = source.getColorModel();
WritableRaster raster = cm.(targetW, targetH);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
target = new BufferedImage(cm, raster, alphaPremultiplied, null);
} else
target = new BufferedImage(targetW, targetH, type);
Graphics2D g = target.createGraphics();
//smoother than exlax:
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY );
g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
g.dispose();
return target;
}

public static void saveImageAsJpg (String fromFileStr,String saveToFileStr,int width,int hight)
throws Exception {
BufferedImage srcImage;
// String ex = fromFileStr.substring(fromFileStr.indexOf("."),fromFileStr.length());
String imgType = "JPEG";
if (fromFileStr.toLowerCase().endsWith(".png")) {
imgType = "PNG";
}
// System.out.println(ex);
File saveFile=new File(saveToFileStr);
File fromFile=new File(fromFileStr);
srcImage = ImageIO.read(fromFile);
if(width > 0 || hight > 0)
{
srcImage = resize(srcImage, width, hight);
}
ImageIO.write(srcImage, imgType, saveFile);

}

public static void main (String argv[]) {
try{
//參數1(from),參數2(to),參數3(寬),參數4(高)
saveImageAsJpg("C:\\Documents and Settings\\xugang\\桌面\\tmr-06.jpg",
"C:\\Documents and Settings\\xugang\\桌面\\2.jpg",
120,120);
} catch(Exception e){
e.printStackTrace();
}

}

③ java如何截取視頻的幀,生成一個圖片

就是可以使用ffmpeg,下載ffmpeg相關組件到電腦中,然後用java調用命令的方式(RunTime.exec相關方法),使用ffmpeg的功能。

④ Java編程:怎麼獲得一個視頻的縮略圖呢

如果本地視頻的話,可以通過Runtime類的exec方法調用ffmpeg來實現
ffmpeg是視頻轉碼,截圖的程序,我這里有

⑤ 視頻縮略圖是根據什麼原理生成,獲取的

本文實例講述了C#獲取視頻某一幀的縮略圖的方法。分享給大家供大家參考。具體實現方法如下:
讀取方式:使用ffmpeg讀取,所以需要先下載ffmpeg。網上資源有很多。
原理是通過ffmpeg執行一條命令獲取視頻某一幀的縮略圖。

⑥ 你好 分享視頻 如何獲得縮略圖有沒有 java 的方法 謝謝

就縮小就行了

⑦ 有什麼工具或播放器可以生成視頻縮略圖

很多PT站九宮格預覽截圖上常年顯示的是射手影音的Logo..

不過好像新版本樣式有很大的變化,設計上做了精簡,截了幾張喜歡的影片可以看一下效果。

還挺好用的,截圖很清晰,該有的視頻信息也有,目前有九宮格和十六宮格兩種導出,能滿足常規需求了。

射手影音 SPlayer


⑧ Java編寫獲得指定視頻的縮略圖

下載個ffmpeg.exe 用java 調用ffmpeg進程 ffmpeg是可以命令行操作的 可以去查下ffmpeg的命令選項

⑨ 怎樣為多媒體文件生成縮略圖

多媒體文件分為視頻、音頻、圖片,下面分類介紹多媒體文件生成縮略圖的方法:
1、Video
對於視頻,取第一幀作為縮略圖,也就是怎樣從filePath得到一個Bitmap對象。
private Bitmap createVideoThumbnail(String filePath) {
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setMode(MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY);
retriever.setDataSource(filePath);
bitmap = retriever.captureFrame();
} catch(IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file.
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
}
}
return bitmap;
}
Android提供了MediaMetadataRetriever,由JNI(media_jni)實現。
看得出MediaMetadataRetriever主要有兩個功能:MODE_GET_METADATA_ONLY和MODE_CAPTURE_FRAME_ONLY
這里設mode為MODE_CAPTURE_FRAME_ONLY,調用captureFrame取得一幀。
另外還有兩個方法可以用:
extractMetadata 提取文件信息,ARTIST、DATE、YEAR、DURATION、RATING、FRAME_RATE、VIDEO_FORMAT
和extractAlbumArt 提取專輯信息,這個下面的音樂文件可以用到。

2、Music
對於音樂,取得AlbumImage作為縮略圖,還是用MediaMetadataRetriever
private Bitmap createAlbumThumbnail(String filePath) {
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setMode(MediaMetadataRetriever.MODE_GET_METADATA_ONLY);
retriever.setDataSource(filePath);
byte[] art = retriever.extractAlbumArt();
bitmap = BitmapFactory.decodeByteArray(art, 0, art.length);
} catch(IllegalArgumentException ex) {
} catch (RuntimeException ex) {
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
}
}
return bitmap;
}
retriever.extractAlbumArt()得到的是byte數組,還需要一步用BitmapFactory編碼得到Bitmap對象。

3、Image
圖片就很簡單了
Bitmap bm = null;
Options op = new Options();
op.inSampleSize = inSampleSize;
op.inJustDecodeBounds = false;
bm = BitmapFactory.decodeFile(mFile.getPath(), op);
能直接得到Bitmap對象,把圖片縮小到合適大小就OK。
同樣上面的Video和Music,retrive到Bitmap後也需要縮小處理。

Powered by ScribeFire.

⑩ javaWeb怎麼實現根據內容生成縮略圖

packagecom.hoo.util;

importjava.awt.Image;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.net.MalformedURLException;
importjava.net.URL;
importjavax.imageio.ImageIO;
importcom.sun.image.codec.jpeg.ImageFormatException;
importcom.sun.image.codec.jpeg.JPEGCodec;
importcom.sun.image.codec.jpeg.JPEGEncodeParam;
importcom.sun.image.codec.jpeg.JPEGImageEncoder;

/**
*<b>function:</b>縮放圖片工具類,創建縮略圖、伸縮圖片比例
*@authorhoojo
*@createDate2012-2-3上午10:08:47
*@fileScaleImageUtils.java
*@packagecom.hoo.util
*@version1.0
*/
{

_SCALE_QUALITY=1f;
_IMAGE_FORMAT=".jpg";//圖像文件的格式
_FILE_PATH="C:/temp-";

/**
*<b>function:</b>設置圖片壓縮質量枚舉類;
*Someguidelines:0.75highquality、0.5mediumquality、0.25lowquality
*@authorhoojo
*@createDate2012-2-7上午11:31:45
*@fileScaleImageUtils.java
*@packagecom.hoo.util
*@projectJQueryMobile
*@version1.0
*/
publicenumImageQuality{
max(1.0f),high(0.75f),medium(0.5f),low(0.25f);

privateFloatquality;
publicFloatgetQuality(){
returnthis.quality;
}
ImageQuality(Floatquality){
this.quality=quality;
}
}

privatestaticImageimage;

/**
*<b>function:</b>通過目標對象的大小和標准(指定)大小計算出圖片縮小的比例
*@authorhoojo
*@createDate2012-2-6下午04:41:48
*@paramtargetWidth目標的寬度
*@paramtargetHeight目標的高度
*@paramstandardWidth標准(指定)寬度
*@paramstandardHeight標准(指定)高度
*@return最小的合適比例
*/
publicstaticdoublegetScaling(doubletargetWidth,doubletargetHeight,doublestandardWidth,doublestandardHeight){
doublewidthScaling=0d;
doubleheightScaling=0d;
if(targetWidth>standardWidth){
widthScaling=standardWidth/(targetWidth*1.00d);
}else{
widthScaling=1d;
}
if(targetHeight>standardHeight){
heightScaling=standardHeight/(targetHeight*1.00d);
}else{
heightScaling=1d;
}
returnMath.min(widthScaling,heightScaling);
}

閱讀全文

與java視頻縮略圖生成相關的資料

熱點內容
皓強工具解壓步驟 瀏覽:688
部隊抗洪搶險命令範文 瀏覽:886
歐姆龍plc編程軟體使用教程 瀏覽:592
ai文件pdf 瀏覽:911
騰訊雲伺服器掛載混合雲 瀏覽:758
智能小車用什麼單片機 瀏覽:463
java怎麼給窗口關閉 瀏覽:940
列舉51單片機的定址方式 瀏覽:706
剪輯app怎麼寫長篇文字 瀏覽:400
app專屬流量過月租怎麼不更新 瀏覽:654
王者程序員都有誰 瀏覽:76
給牛換腳掌解壓 瀏覽:387
圍棋有多少種演算法 瀏覽:602
unity資源包在哪個文件夾 瀏覽:704
阿里雲伺服器遠程鏈接不成功 瀏覽:482
文件系統pdf 瀏覽:767
原神安卓區服什麼意思 瀏覽:37
貝殼app怎麼線上發布 瀏覽:161
如何挑選安卓系統機頂盒 瀏覽:55
安卓快充使用有什麼注意事項 瀏覽:911