`

抓取屏幕截图

 
阅读更多

转载:

 

http://www.cnblogs.com/-OYK/archive/2011/05/31/2064775.html

 

android屏幕截图 
  
    import java.io.FileNotFoundException;   
    import java.io.FileOutputStream;   
    import java.io.IOException;   
        
    import android.app.Activity;   
    import android.graphics.Bitmap;   
    import android.graphics.Rect;   
    import android.view.View;   
        
    public class ScreenShot {   
        // 获取指定Activity的截屏,保存到png文件   
        private static Bitmap takeScreenShot(Activity activity){   
            //View是你需要截图的View   
            View view = activity.getWindow().getDecorView();   
            view.setDrawingCacheEnabled(true);   
            view.buildDrawingCache();   
            Bitmap b1 = view.getDrawingCache();   
                
            //获取状态栏高度   
            Rect frame = new Rect();     
            activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);     
            int statusBarHeight = frame.top;     
            System.out.println(statusBarHeight);   
                
            //获取屏幕长和高   
            int width = activity.getWindowManager().getDefaultDisplay().getWidth();     
            int height = activity.getWindowManager().getDefaultDisplay().getHeight();     
            //去掉标题栏   
            //Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);   
            Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight);   
            view.destroyDrawingCache();   
            return b;   
        }   
            
        //保存到sdcard   
        private static void savePic(Bitmap b,String strFileName){   
            FileOutputStream fos = null;   
            try {   
                fos = new FileOutputStream(strFileName);   
                if (null != fos)   
                {   
                    b.compress(Bitmap.CompressFormat.PNG, 90, fos);   
                    fos.flush();   
                    fos.close();   
                }   
            } catch (FileNotFoundException e) {   
                e.printStackTrace();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
            
        //程序入口   
        public static void shoot(Activity a){   
            ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png");   
        }   
    } 


 

 

    public Bitmap createVideoThumbnail(String filePath) {
        Bitmap bitmap = null;
        android.media.MediaMetadataRetriever retriever = new android.media.MediaMetadataRetriever();
        try {// MODE_CAPTURE_FRAME_ONLY
//            retriever
//                    .setMode(android.media.MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY);
//            retriever.setMode(MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY);
            retriever.setDataSource(filePath);
//            bitmap = retriever.captureFrame();
            String timeString = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
            long time = Long.parseLong(timeString) * 1000;
            Log.i("TAG","time = " + time);
            bitmap = retriever.getFrameAtTime(time*31/160); //按视频长度比例选择帧
        } 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;
    }




 

分享到:
评论

相关推荐

    C# 类似QQ抓取屏幕截图代码 可用VS打开

    在C#编程环境中,开发类似QQ的屏幕截图功能是一项常见的需求,这主要涉及到Windows API的调用、图像处理以及用户界面交互。以下是一些相关的知识点: 1. **Windows API调用**:C#本身并不直接支持屏幕截图功能,但...

    get_me_screenshots:一个小的 node.js 应用程序,用于在延迟时抓取屏幕截图并将其邮寄给用户

    一个小的 node.js 应用程序,用于在一天中的特定时间抓取屏幕截图并将其通过电子邮件发送给用户。 该应用程序将继续运行并每天发送屏幕截图(希望如此)。 为此,您需要将 smtp_sample.json 重命名为 smtp.json 并...

    spectools-fetch-spec:一个基于 PhantomJS 的节点模块,旨在获取规范、它们的子资源,并可选择抓取屏幕截图

    spectools-fetch-spec是一个基于 PhantomJS 的节点模块,旨在获取规范及其子资源,并可选择抓取屏幕截图。 因此,它包含特定代码来处理在客户端呈现的规范,例如 ReSpec。 应用程序接口 fetchSpec(url [, options]...

    python 截图工具源码

    本文介绍了一款python截图工具的源码,它能够帮助用户...总的来说,这款python截图工具的源码可以满足用户在抓取屏幕截图时的各种需求,让用户更容易获取高质量的图片,更方便快捷的抓取屏幕截图,从而提高工作效率。

    py-imgur-grabber:一个小的python脚本,用于抓取屏幕截图,将它们上传到Imgur,在剪贴板中提供链接,然后在一段时间后将其删除

    一个小的python脚本,用于抓取屏幕截图,将它们上传到Imgur,在剪贴板中提供链接,然后在一段时间后将其删除。 要使用它,请参阅我的博客条目: : 你会需要: Python ( ) 要安装这些软件包: pip install ...

    通过标准 VISA 接口从 Agilent 示波器捕获波形:从 Agilent 示波器捕获波形并抓取屏幕截图的 MATLAB 示例。-matlab开发

    此示例向您展示了如何使用 MATLAB 控制安捷伦示波器、捕获波形并在仪器上抓取屏幕截图。 用户可以自定义代码,以允许使用不同的段数点,采样率等。有关用于控制仪器的SCPI命令的更多信息,请参阅仪器的程序员指南。...

    捕捉屏幕软件,图片捕捉软件

    首先,屏幕捕捉软件的基本功能包括全屏截图、区域截图、窗口截图、滚动截图等。全屏截图允许用户捕获整个屏幕的内容,适用于快速保存整个桌面视图。区域截图则让用户自由选择想要截取的屏幕部分,便于聚焦于特定内容...

    抓取屏幕图像并在视图窗口中显示

    在IT领域,尤其是在软件开发中,有时我们需要获取计算机屏幕上的实时图像,这通常被称为“抓屏”或“屏幕截图”。这个过程可以通过编程实现,以便在应用程序中动态展示屏幕内容。本篇文章将深入探讨如何实现“抓取...

    抓取屏幕在任务栏显示图标

    总的来说,"抓取屏幕在任务栏显示图标"是一个关于提高屏幕截图效率和便捷性的技巧。通过使用适当的截图工具和设置,用户不仅可以快速捕捉屏幕,还能有效地管理和编辑截图,使日常工作和交流变得更加高效。在日常操作...

    实现屏幕截图的小程序 java课程设计.pdf

    - `java.awt.Robot` 类是Java提供的用于模拟键盘和鼠标输入的工具,也可以用于抓取屏幕截图。通过调用 `createScreenCapture(Rectangle area)` 方法,我们可以获取指定矩形区域的屏幕图像。 - `BufferedImage` 类...

    快捷抓取、查找屏幕文字图像字库,电脑屏幕文字抓取工具,AutoIt

    “抓取屏幕文字”和“屏幕找字”则强调了工具的主要应用,即从屏幕上定位和提取文字。无论是网页、应用程序窗口还是桌面文档,只要文字出现在屏幕上,这个工具都能帮助用户快速获取这些文本。这对于需要大量手动复制...

    抓取屏幕程序

    - 远程协作:通过共享屏幕截图或录制,提高沟通效率。 - 在线教育:教师可以制作教程材料,学生也可以记录学习过程。 - 社交媒体:分享游戏精彩瞬间或电脑操作流程。 - 设计反馈:设计师可以快速分享设计稿并收集...

    VC++ 6.0当前屏幕截图

    《VC++ 6.0实现屏幕截图技术详解》 在计算机编程领域,屏幕截图是一种常见的需求,用于捕获用户界面的图像。本文将深入探讨如何使用经典的Visual C++ 6.0(简称VC++ 6.0)开发一个简单的屏幕截图小程序。这个程序的...

    Win32 抓取屏幕

    在IT领域,"Win32 抓取屏幕"是指利用Windows API函数来捕获计算机屏幕上显示的内容,并将其保存为图像文件或进行其他处理。这个过程通常涉及到编程技术,特别是使用C++语言和Win32 API。下面将详细介绍如何在Windows...

    vb鼠标抓取屏幕源码

    `BitBlt()`函数则是一个位图操作函数,能够复制指定设备上下文(DC)的一部分到另一个设备上下文,常用于屏幕截图。 下面是一些关于VB屏幕抓取的知识点: 1. **API调用**:VB本身并不直接提供屏幕抓取的内置功能,...

    屏幕截图功能,VB.NET代码实现

    屏幕截图功能在日常计算机操作中十分常见,它可以帮助我们快速捕获并保存当前显示器上的图像。在编程领域,实现这一功能通常需要利用图形设备接口(GDI+)或Windows API等技术。VB.NET,作为微软.NET框架下的面向...

    delphi写得屏幕抓取小例子

    屏幕抓取,也被称为屏幕截图或屏幕快照,是计算机技术中一个常见且实用的功能,允许用户捕获当前显示器上显示的内容。在本例中,我们讨论的是使用Delphi编程语言实现的一个简单屏幕抓取小例子。Delphi是一款强大的...

    EVC定时抓取屏幕小程序

    在Windows CE(简称Wince)操作系统环境下,开发一个EVC(Embedded Visual C++)定时抓取屏幕的小程序是一项实用的任务。这个小程序可以帮助用户定期捕获设备的屏幕快照,保存为图像文件,以便进行监控、分析或记录...

    delphi区域屏幕抓取

    在IT领域,屏幕抓取(Screen Capture)是一种常见的技术,用于获取计算机显示器上显示的图像。在本案例中,我们关注的是一个用Delphi编程语言编写...通过这样的程序,用户可以方便地定制和保存屏幕截图,满足各种需求。

    vc++ 实现屏幕截图

    在VC++环境中,实现屏幕截图功能通常涉及到Windows API的使用,特别是GDI(Graphics Device Interface)和MFC(Microsoft Foundation Classes)库。MFC是微软提供的一个C++类库,它封装了Windows API,使得开发者...

Global site tag (gtag.js) - Google Analytics