精华内容
下载资源
问答
  • 比例尺分辨率转换(openlayers)
    2022-01-19 09:16:59

    1、比例尺转分辨率

        //比例尺改变事件监听
        Bus.$on("changeScale", val => {
          //默认dpi
          const DEFAULT_DPI = 25.4 / 0.28;
          //每米多少英寸
          const inchesPerMeter = 1000 / 25.4;
          var readyToChangeResolution = 0;
          //如果是度分秒的话需要转换为米
          if(self.map.getView().getProjection().getUnits() != 'metric'){
            readyToChangeResolution = 1/(val*self.map.getView().getProjection().getMetersPerUnit() * inchesPerMeter * DEFAULT_DPI);
          }else{
            readyToChangeResolution = 1 / (val * inchesPerMeter * DEFAULT_DPI);
          }
          this.changeScale(readyToChangeResolution);
        });

    2、分辨率转比例尺

        // 监听分辨率变化,通过dpi和像素关系(比例尺=dpi/0.0254*分辨率)输出比例尺
        this.map.getView().on('change:resolution', function(){
          //默认dpi
          const DEFAULT_DPI = 25.4 / 0.28;
          //每米多少英寸
          const inchesPerMeter = 1000 / 25.4;
          var currentScale = 1;
          //如果是度分秒的话需要转换为米
          if(self.map.getView().getProjection().getUnits() != 'metric'){
            currentScale = self.map.getView().getResolution()*self.map.getView().getProjection().getMetersPerUnit() * inchesPerMeter * DEFAULT_DPI;
          }else{
            currentScale = self.map.getView().getResolution() * inchesPerMeter * DEFAULT_DPI;
          }
          const mapScale =
          '1 : ' + Math.round(currentScale).toLocaleString();
          console.log(mapScale)
        });

    *注意事项:上述DEFAULT_DPI  来自openlayers(6.x)源码中的比例尺 早期openlayers版本中的dpi可能有所不同,详情可查询所使用openlayers版本的源码进行确认

    参考:Openlayers中的比例尺(scale)和分辨率(resolution) - GIS开发者

    更多相关内容
  • 基于FPGA的图像信号分辨率转换设计.pdf
  • 图片分辨率转换工具

    2012-12-06 09:47:38
    图片分辨率转换工具
  • 分析了基于降低时间分辨率转换编码模型的运动估值问题,给出了双线性内插法、前向主向量选择法和前向向量法的理论分析结果和实验结果。实验结果表明:前向向量法比其它两种方法不仅提高了图像的信噪比,而且减少了...
  • 视频分辨率转换器(mp4视频分辨率转换器)是一款功能强大的优化体积和画面质量视频转换工具,该软件功能强大,操作简单,支持屏幕分辨率、颜色质量、自定义屏幕分辨率等功能,让你轻松调整分辨率,轻松解决视频模糊,...

    视频分辨率转换器(mp4视频分辨率转换器)是一款功能强大的优化体积和画面质量视频转换工具,该软件功能强大,操作简单,支持屏幕分辨率、颜色质量、自定义屏幕分辨率等功能,让你轻松调整分辨率,轻松解决视频模糊,调节视觉舒适度,大家都在用,你还在等什么,试试就知道了。

    软件特点:

    1、支持将流行的RM、RMVB转换为MP4视频格式。

    2、支持将DVD(Vob)、SVCD、VCD(dat)视频格式转换为MP4视频格式。

    3、支持将各种格式的AVI、MPEG、DivX、XviD、3GP视频转换为转换为MP4视频格式。

    4、支持将网上下载的WMV、ASF、MKV视频转换转换为MP4视频格式。

    5、支持FLV (在线视频格式)、SWF (Flash动画视频)等视频格式转换为MP4视频格式。

    6、转换后的视频和音频能在支持MP4的DVD碟机上播放。

    7、转换后的视频能在支持3GP的手机、智能手机、黑莓手机上播放。枫叶MP4视频转换器

    8、转换后的视频和音频能在苹果iPod上播放。

    9、转换后的视频和音频能在PSP、PS3游戏设备上播放。

    10、转换后的视频和音频能在苹果iPhone手机上播放。

    11、转换后的视频和音频能在MP4机和MP5机移动设备上播放。

    12、完美支持多核CPU,支持多线程转换,可同时转换19个文件,转换速度提高>300%。

    13、完美支持Windows XP /2003/Vista /Windows 7。

    14、支持批量转换,支持自动关机功能,为您节省大量时间。

    15、支持转换同时预览视频。

    16、支持普通屏幕模式4:3和宽频模式16:9、37:20、47:20多种视频模式。

    17、能自由设置视频音频清晰度,比特率、帧率、采样率等等。

    18、支持各种流行图片格式(JPG, PNG, GIF, BMP) 转换为MP4视频格式。

    19、支持各种流行音频格式转换如 MP3、WMA、WAV、M4A、AAC、AC3、OGG、FLAC、RA、RM等等。

    展开全文
  • //如果type为1,将其他文件先转换为avi,然后在用ffmpeg转换为指定格式 System.out.println("ffmpeg不可以转换,先调用mencoder转码avi"); String avifilepath = processAVI(type); if (avifilepath == null){ ...

    最近做一个项目需要对视频进行处理,网上看了一写资料和教程,大部分都是使用ffmpeg对视频进行处理。话不多说直接上代码,很简单,一看就懂。参考博客,博主写的非常简单易懂,我自己根据业务做了一点简单的调整

    首先是一个路径配置类代码如下:

    public class Contants {
    
        /**
         * @Description:(3.工具类主类)设置转码工具的各个路径
         * @param:@param args
         * @return:void
         * @author:Zoutao
         * @date:2018-6-22
         * @version:V1.0
         */
    
        public static final String ffmpegpath = "D:/ffmpeg-20171225-be2da4c-win64-static/bin/ffmpeg.exe";		// ffmpeg工具安装位置
       
        public static final String videofolder = "d://file/"; // 需要被转换格式的视频目录
     
        public static final String targetfolder = "d://temp/"; // 转码后视频保存的目录
       
    
    
    }
    import com.tk.blogadmin.utils.DateUtils;
    
    /**
     * @ClassName ConverVideoTest
     * @Desecription TODO
     * @Author tkk
     * @Date 2019/11/13 9:43
     **/
    public class ConverVideoTest {
    
        /**
         * @Description:(1.转码功能调用)
         * @param:@param yuanPATH
         * @return:void
         * @author:Zoutao
         * @date:2018-6-23
         * @version:V1.0
         */
    
        /*本地测试专用--zoutao*/
        public static void main(String[] args) {
            System.out.println(DateUtils.getCurrentDateTime());
            ConverVideoTest c = new ConverVideoTest();
            String yuanPATH = "D:/file/IMG_4141.MP4";  //本地源视频
            c.run(yuanPATH);
            System.out.println(DateUtils.getCurrentDateTime());
        }
    
        //web调用
        public void run(String yuanPATH) {
            try {
                // 转码开始
    
                //String filePath = "D:/testfile/video/rmTest.rm";  //本地源视频测试
    
                String filePath = yuanPATH;				//web传入的源视频
                System.out.println("ConverVideoTest说:传入工具类的源视频为:"+filePath);
    
                ConverVideoUtils zout = new ConverVideoUtils(filePath);  //传入path
                String targetExtension = ".mp4";  				//设置转换的格式
                boolean isDelSourseFile = true; //删除源文件
    
                boolean beginConver = zout.beginConver(targetExtension,isDelSourseFile);
                System.out.println(beginConver);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    mport java.io.*;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     *
     * @Title: ConverVideoUtils.java
     * @Package:com.resource.mytools
     * @Description:(2.转码和截图功能)
     * @see:接收Contants实体的路径
     * @author:Zoutao
     * @date:2018-7-15
     * @version:V1.0
     */
    
    public class ConverVideoUtils {
        private String sourceVideoPath;							//源视频路径
        private String filerealname;				 			//文件名不包括后缀名
        private String filename; 								//包括后缀名
        private String videofolder = Contants.videofolder; 		// 别的格式视频的目录
        private String targetfolder = Contants.targetfolder; 	// flv视频的目录
        private String ffmpegpath = Contants.ffmpegpath;		 // ffmpeg.exe的目录
        public ConverVideoUtils() {
        }
    
        //重构构造方法,传入源视频
        public ConverVideoUtils(String path) {
            sourceVideoPath = path;
        }
    
        //set和get方法传递path
        public String getPATH() {
            return sourceVideoPath;
        }
    
        public void setPATH(String path) {
            sourceVideoPath = path;
        }
    
        /**
         * 转换视频格式
         * @param String targetExtension 目标视频后缀名 .xxx
         * @param boolean isDelSourseFile 转换完成后是否删除源文件
         * @return
         */
        public boolean beginConver(String targetExtension, boolean isDelSourseFile) {
            File fi = new File(sourceVideoPath);
    
            filename = fi.getName();//获取文件名+后缀名
    
            filerealname = filename.substring(0, filename.lastIndexOf(".")); //获取不带后缀的文件名-后面加.toLowerCase()小写
    
            System.out.println("----接收到文件("+sourceVideoPath+")需要转换-------");
    
            //检测本地是否存在
    		/*if (checkfile(sourceVideoPath)) {
    			System.out.println(sourceVideoPath + "========该文件存在哟 ");
    			return false;
    		}*/
    
            System.out.println("----开始转文件(" + sourceVideoPath + ")-------------------------- ");
    
            //执行转码机制
            if (process(targetExtension,isDelSourseFile)) {
    
                System.out.println("视频转码结束================= ");
    
               
                //删除原视频+临时视频
    			/*if (isDelSourseFile) {
    				deleteFile(sourceVideoPath);
    			}*/
    
    			/*File file1 = new File(sourceVideoPath);
    	         if (file1.exists()){
    	        	 System.out.println("删除原文件-可用:"+sourceVideoPath);
    	             file1.delete();
    	          }*/
    
                String temppath=videofolder + filerealname + ".avi";
                File file2 = new File(temppath);
                if (file2.exists()){
                    System.out.println("删除临时文件:"+temppath);
                    file2.delete();
                }
    
                sourceVideoPath = null;
                return true;
            } else {
                sourceVideoPath = null;
                return false;
            }
        }
    
    
        /**
         * 检查文件是否存在-多处都有判断
         * @param path
         * @return
         */
    
    	/*private boolean checkfile(String path) {
    		path = sourceVideoPath;
    		File file = new File(path);
    		try {
    			if (file.exists()) {
    				System.out.println("视频文件不存在============="+path);
    				return true;
    			} else {
    				System.out.println("视频文件存在"+path);
    				return false;
    			}
    		} catch (Exception e) {
    			// TODO: handle exception
    			System.out.println("拒绝对文件进行读访问");
    		}
    		return false;
    	}*/
    
        /**
         * 实际转换视频格式的方法
         * @param targetExtension 目标视频后缀名
         * @param isDelSourseFile 转换完成后是否删除源文件
         * @return
         */
        private boolean process(String targetExtension, boolean isDelSourseFile) {
    
            //先判断视频的类型-返回状态码
            int type = checkContentType();
            boolean status = false;
    
            //根据状态码处理
            if (type == 0) {
                System.out.println("ffmpeg可以转换,统一转为mp4文件");
    
                status = processVideoFormat(sourceVideoPath,targetExtension,isDelSourseFile);//可以指定转换为什么格式的视频
    
            } else if (type == 1) {
                //如果type为1,将其他文件先转换为avi,然后在用ffmpeg转换为指定格式
                System.out.println("ffmpeg不可以转换,先调用mencoder转码avi");
                String avifilepath = processAVI(type);
    
                if (avifilepath == null){
                    // 转码失败--avi文件没有得到
                    System.out.println("mencoder转码失败,未生成AVI文件");
                    return false;
                }else {
                    System.out.println("生成AVI文件成功,ffmpeg开始转码:");
                    status = processVideoFormat(avifilepath,targetExtension,isDelSourseFile);
                }
            }
            return status;   //执行完成返回布尔类型true
        }
    
        /**
         * 检查文件类型
         * @return
         */
        private int checkContentType() {
    
            //取得视频后缀-
            String type = sourceVideoPath.substring(sourceVideoPath.lastIndexOf(".") + 1, sourceVideoPath.length()).toLowerCase();
            System.out.println("源视频类型为:"+type);
    
            // 如果是ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
            if (type.equals("avi")) {
                return 0;
            } else if (type.equals("mpg")) {
                return 0;
            } else if (type.equals("wmv")) {
                return 0;
            } else if (type.equals("3gp")) {
                return 0;
            } else if (type.equals("mov")) {
                return 0;
            } else if (type.equals("mp4")) {
                return 0;
            } else if (type.equals("asf")) {
                return 0;
            } else if (type.equals("asx")) {
                return 0;
            } else if (type.equals("flv")) {
                return 0;
            }else if (type.equals("mkv")) {
                return 0;
            }
    
            System.out.println("上传视频格式异常");
            return 9;
        }
    
    
        /**
         * 转换为指定格式--zoutao
         * ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
         * @param oldfilepath
         * @param targetExtension 目标格式后缀名 .xxx
         * @param isDelSourseFile 转换完成后是否删除源文件
         * @return
         */
        private boolean processVideoFormat(String oldfilepath, String targetExtension, boolean isDelSourceFile) {
    
            System.out.println("调用了ffmpeg.exe工具");
    
            //先确保保存转码后的视频的文件夹存在
            File TempFile = new File(targetfolder);
            if (TempFile.exists()) {
                if (TempFile.isDirectory()) {
                    System.out.println("该文件夹存在。");
                }else {
                    System.out.println("同名的文件存在,不能创建文件夹。");
                }
            }else {
                System.out.println("文件夹不存在,创建该文件夹。");
                TempFile.mkdir();
            }
    
            List<String> commend = new ArrayList<String>();
    
            commend.add(ffmpegpath);		 //ffmpeg.exe工具地址
            commend.add("-i");
            commend.add(oldfilepath);			//源视频路径
    
            commend.add("-vf");             //视频分辨率处理
            commend.add("scale=180:320");   //9:16
    
            commend.add("-vcodec");
            commend.add("h263");  //
            commend.add("-ab");		//新增4条
            commend.add("64");      //高品质:128 低品质:64
            commend.add("-acodec");
            commend.add("mp3");      //音频编码器:原libmp3lame
            commend.add("-ac");
            commend.add("2");       //原1
            commend.add("-ar");
            commend.add("22050");   //音频采样率22.05kHz
            commend.add("-r");
            commend.add("15");  //高品质:29.97 低品质:15
            commend.add("-c:v");
            commend.add("libx264");	//视频编码器:视频是h.264编码格式
            commend.add("-strict");
            commend.add("-2");
            commend.add(targetfolder + filerealname + targetExtension);  // //转码后的路径+名称,是指定后缀的视频
    
            //打印命令--zoutao
            StringBuffer test = new StringBuffer();
            for (int i = 0; i < commend.size(); i++) {
                test.append(commend.get(i) + " ");
            }
            System.out.println("ffmpeg输入的命令:"+test);
    
            try {
                //多线程处理加快速度-解决rmvb数据丢失builder名称要相同
                ProcessBuilder builder = new ProcessBuilder();
                builder.command(commend);
                Process p = builder.start();   //多线程处理加快速度-解决数据丢失
    
                final InputStream is1 = p.getInputStream();
                final InputStream is2 = p.getErrorStream();
                new Thread() {
                    public void run() {
                        BufferedReader br = new BufferedReader(
                                new InputStreamReader(is1));
                        try {
                            String lineB = null;
                            while ((lineB = br.readLine()) != null) {
                                if (lineB != null)
                                    System.out.println(lineB);    //打印mencoder转换过程代码
                            }
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();
                new Thread() {
                    public void run() {
                        BufferedReader br2 = new BufferedReader(
                                new InputStreamReader(is2));
                        try {
                            String lineC = null;
                            while ((lineC = br2.readLine()) != null) {
                                if (lineC != null)
                                    System.out.println(lineC);    //打印mencoder转换过程代码
                            }
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();
    
                p.waitFor();		//进程等待机制,必须要有,否则不生成mp4!!!
                System.out.println("生成mp4视频为:"+videofolder + filerealname + ".mp4");
                return true;
            }
            catch (Exception e) {
                e.printStackTrace();
                return false;
            }
        }
    }

     

    展开全文
  • NULL 博文链接:https://rich8w.iteye.com/blog/752803
  • android项目图片分辨率转换工具

    千次阅读 2014-07-09 17:28:32
    开元工具来自: ...   说明:  Android Drawable Factory An application to create appropriate Drawable resources for you Android app. N.B.: I'm working on a I

    开元工具来自: https://github.com/ICareYou/AndroidDrawableFactory

     


                                   Android Drawable Factory


    An application to create appropriate Drawable resources for you Android app.

    N.B.: I'm working on a IntelliJ plugin based on this tool, it's WIP but you can watch it 

    Usage

    1. To open the application:


    2. Once opened, just click onto the image on the left of the windows and choose the drawable (.jpg or .png) you want to convert. For Image of:

     

     

    3. Then click on browse and select your android project res folder's path. For Image of:

     

    4. In source density choose the density your image is drawn at. For Image of:

     

    5. Select which density you want to create clicking on the checkboxes in the bottom of the window. For Image of:

     

    6. click make and see the magic!  For Image of:

     

    展开全文
  • TIA博途WinCC PRO V16 画面分辨率的设置方法
  • 分辨率转换mcu程序

    2010-05-10 10:31:57
    分辨率任意转换,最大1920*1080,最小1024*768
  • 本篇文章主要介绍了"FPGA----视频下采样------分辨率转换-----yuv444----yuv420 ",主要涉及到FPGA----视频下采样------分辨率转换-----yuv444----yuv420 方面的内容,对于FPGA----视频下采样------分辨率转换-----...
  • 在手机测试时,可能会遇到需要直接点击的情况,这时候就需要用到坐标了,但是不同人的手机分辨率可能不一样,这时为了程序的通用性,就需要自动对坐标进行一些转换,下面是代码,其实只要最下面coop_cover函数就可以...
  • rmvb分辨率转换

    2009-08-08 20:45:48
    轻松转换rmvb影片的分辨率。 当你下载的影片分辨率被压缩的不合适时,只需要点一下,就可以一劳永逸的改变分辨率
  • Python 脚本中不同平台显示器分辨率的坐标转换显示器坐标系统:脚本示例:>>> import pyautogui>>> pyautogui.size() #获取屏幕分辨率(1920, 1080)>>> pyautogui.position() #获取当前...
  • YuvPlayer,支持大分辨率,稳定,支持各种YUV格式,稳定运行。分析视频帧。
  • 易语言屏幕分辨率设置源码系统结构:易语言屏幕分辨率设置源码,屏幕分辨率设置 ======窗口程序集1 || ||------__启动窗口_创建完毕 || ||------_按钮1_被单击
  • 调整分辨率

    2013-01-12 10:54:14
    这个软件调整分辨率颜色
  • 屏幕分辨率单位转换详解

    千次阅读 2015-11-30 21:18:55
    下面是几种不同单位的相互转换. 代码如下: public static intdip2px(Context context, float dipValue){ final float scale =context.getResources().getDisplayMetrics().density; return (int)...
  • 地球半径为6378137m,因此经、纬度0.05°即对应地表0.05/180×3.1415956×6378137=5565.9744m。 也就是经纬度0.05°×0.05°的分辨率就对应着5.5km×5.5km的地表面积。
  • Python视频转换分辨率(附代码) | Python工具

    千次阅读 多人点赞 2021-12-12 14:34:03
    本文提供将视频调整分辨率的Python代码,一如既往的实用主义。
  • 介绍一种针对FPGA优化的时间数字转换阵列电路。...在Altera公司的FPGA上验证表明,本时间数字转换阵列可达1.73 ns的时间分辨率转换阵列具有占用资源少,可重用性高,可以作为IP核方便地移植到其他设计中。
  • java调用ffmpeg转换视频,并读取转换后视频的分辨率、大小以及时长。主要参考http://blog.sina.com.cn/s/blog_a5116c670102wiwj.html 的代码方式。步骤: 1.研究java如何调用外部程序 2.研究ffmpeg转换视频格式的...
  • 分辨率和像素转换

    2015-08-18 14:28:00
    * 根据手机的分辨率从 dip 的单位 转成为 px(像素) 20 * 21 * @param dpValue 22 * @return 23 */ 24 public int dip2px( float dpValue) { 25 final float scale = context....
  • 转换器在新设计型态改进下,大多模拟数字转换器多变成数字式。即使如此的改变,电路布线的设计并无改变,本文将介绍使用连续逼近缓存器型与Sigma-Delta型的模拟数字转换器之布线方式。
  • 转换器在新设计型态改进下,大多模拟数字转换器多变成数字式。即使如此的改变,电路布线的设计并无改变,本文将介绍使用连续逼近缓存器型与Sigma-Delta型的模拟数字转换器之布线方式。  初模拟数字转换器在芯片中...
  • 转换器在新设计型态改进下,大多模拟数字转换器多变成数字式。即使如此改变,电路布线设计并无改变,本文将介绍使用连续逼近缓存器型与Sigma-Delta型模拟数字转换器之布线方式。
  • 实际应用经常只会用到数据转换器模拟信号范围的一部分。如果在应用中只用到该范围的一半或者四分之一,则可以很容易地计算出有效分辨率。但如果遇到的是一个更复杂的分数,又该怎么办呢?本文将介绍在使用任何模拟...
  • 今天用到SENDINPUT函数,看了一下,它里面...当前分辨率,请问下,这个65535是怎么得来的呀?我家的是宽屏显示器不可能X和Y都 是65535吧,涉事代码如下: ipt.mi.dx =( 65535/1440)*720; ipt.mi.dy =(65535/900)*450;
  • ffmpeg 修改分辨率

    千次阅读 2022-04-11 23:22:41
    主思路 使用scale 滤镜改变分辨率

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,583
精华内容 45,833
关键字:

分辨率转换

友情链接: ESP32 Firmware.rar