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后也需要缩小处理。
转载于
http://blog.csdn.net/zhjp4295216/archive/2010/08/25/5838466.aspx
分享到:
相关推荐
SWF生成缩略图预览软件是一款专门针对SWF(Shockwave Flash)文件设计的工具,旨在帮助用户快速批量地创建SWF文件的缩略图。这款软件的主要功能是提取SWF文件中的某一特定帧,将其转换成 BMP、JPG 或 GIF 三种常见...
生成缩略图的基本步骤包括读取原始图片,设置缩放比例,然后进行重采样和缩放,最后保存为新的图片文件。缩略图的生成不仅可以减少网络传输的负担,还能在展示大量图片时提高用户体验。 具体实现时,JSP页面可能有...
6. **Java bindings for FFmpeg:** 如果不希望通过命令行接口,还可以使用Java对FFmpeg的绑定库,如JAVE(Java Audio Video Encoder),它提供了一个友好的API来执行FFmpeg的任务,包括生成缩略图。 7. **处理步骤...
在Delphi中,可以使用`TImage`组件来显示图像,但生成缩略图则需要更底层的图像处理函数。Windows API 提供了`GDI+`库,它包含了一系列用于图像处理的函数,如`Graphics`和`Bitmap`类,可以用来创建和操作缩略图。 ...
在实际应用中,例如在网站开发、照片库管理软件或者多媒体应用程序中,都需要对大量图片进行预览处理,生成缩略图以节省显示资源和提高用户体验。 批量生成缩略图的核心在于读取原始图片文件,根据设定的尺寸比例...
生成缩略图的过程通常包括读取视频文件、选择合适的帧并将其转换为图片格式。 "源码"表示这是可编辑的程序代码,开发者可以查看和修改其内部逻辑,以适应特定的需求。对于学习和理解视频处理的C#开发者来说,这是一...
2. **时间戳选择**:确定要生成缩略图的时间点。这可以是视频的开始、中间或结束,或者根据特定的时间戳列表生成多个缩略图。对于用户交互的场景,可能需要提供自定义时间点选择的功能。 3. **帧提取**:从视频流中...
在IT行业中,生成缩略图是一项常见的任务,特别是在网页开发、图像处理以及多媒体应用中。本文将详细探讨“多功能高精度生成缩略图”的C#.Net实现,通过提供的标签“高精度”和“生成缩略图”,我们可以了解到这是一...
在IT行业中,录制视频生成缩略图是一项常见的需求,特别是在多媒体应用、视频分享平台和社交媒体等领域。这个过程涉及到视频处理和图像操作,是数字媒体技术的重要组成部分。在Android平台上,我们可以利用内置的API...
7. **批量生成缩略图.exe**: 这是一个可执行文件,可能是为Windows操作系统设计的批量生成缩略图的工具。用户只需运行此程序,并按照界面提示选择输入图片目录、输出目录、缩略图尺寸和模式,即可自动处理指定的图片...
4. **生成缩略图**:`generateThumbnail()`方法可能会被用来创建视频的预览图像,通常是一个小尺寸的图片。这个方法可能允许设置缩略图的数量、间隔时间以及输出尺寸。 使用这个类的示例可能如下: ```php $ffmpeg...
在Android平台上,录制视频并生成缩略图是常见的多媒体处理功能,广泛应用于各种应用程序,如社交分享、视频编辑等。本文将深入探讨如何在Android应用中实现这一功能,包括视频录制的基本步骤、生成缩略图的方法以及...
在生成缩略图的场景下,GDI+通过其内置的图像处理功能,可以轻松实现对原始图像的缩小、裁剪等操作,同时保持图像的质量。 生成缩略图的基本步骤通常包括以下几个环节: 1. **加载原始图像**:使用GDI+的`Image`类...
这里我们只保留了第一帧作为缩略图,并将其保存为JPEG格式的文件。 需要注意的是,由于FFmpeg库的体积较大,可能不适合某些轻量级应用。在这种情况下,可以考虑使用更轻便的解决方案,如使用`ffmpeg`命令行工具,...
在生成视频缩略图方面,FFmpeg提供了丰富的参数选项,使得我们可以灵活地指定生成缩略图的时间点、数量、质量等。 首先,我们需要下载并安装FFmpeg。在这个例子中,我们看到提供的压缩包文件名为"ffmpeg-4.1-win64-...
3. **图片处理**:为了生成缩略图,我们需要在服务器端进行图像处理。可以使用如System.Drawing命名空间下的类,如`Image`和`Bitmap`,它们提供了裁剪、缩放等图像处理功能。缩略图的生成通常是通过调整原图的尺寸,...
在.NET框架中,生成缩略图和添加水印是一项常见的图像处理任务,广泛应用于网站、应用程序和各种多媒体项目。以下是一些关于这个主题的关键知识点: 1. **图像处理库**: - .NET Framework和.NET Core都提供了...
在.NET框架中,生成缩略图和添加水印是常见的图像处理任务,广泛应用于网站、应用程序和各种多媒体项目。下面将详细介绍如何使用.NET来实现这些功能,并探讨如何优化图像大小,使其更适合网络传输。 首先,生成缩略...
4. 集成到视频上传流程:在用户上传视频文件时,调用上述方法生成缩略图。通常,这个过程可以在后台异步进行,以避免阻塞用户界面。同时,确保处理异常并返回合适的反馈信息。 5. 存储与展示:生成的缩略图可以存储...
使用Xuggler,我们可以方便地获取视频的关键帧,将其转换为图像,进而生成缩略图。 2. **FFmpeg**:FFmpeg是一个强大的跨平台多媒体处理工具,其提供了JAVA绑定库(JAVE或JavaAV)。通过这些库,JAVA程序员可以直接...