精华内容
下载资源
问答
  • 1.获取手机分辨率 MainActivity import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import android.Manifest; import android.graphics.Bitmap; import android....
    1.获取手机的分辨率

    MainActivity
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;

    import android.Manifest;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Point;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.ImageView;

    public class MainActivity extends AppCompatActivity {
    private String permssionRequestCode []={Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS};

    private ImageView myimg;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActivityCompat.requestPermissions(this, permssionRequestCode,0);
        ActivityCompat.requestPermissions(this, permssionRequestCode,1);
        ActivityCompat.requestPermissions(this, permssionRequestCode,2);
        myimg=findViewById(R.id.myImg);
    
        //获取手机的分辨率windowManager,smsManager,TelephoneManger
        WindowManager windowManager=(WindowManager)getSystemService(WINDOW_SERVICE);
        /*
        int height=windowManager.getDefaultDisplay().getHeight();//获取高
        int width=windowManager.getDefaultDisplay().getWidth();
        */
        Point point=new Point();
        windowManager.getDefaultDisplay().getSize(point);
        int width=point.x;
        int height=point.y;
        Log.d("TAG", "width: "+width+"---"+"height: "+height);
    
    }
    
    public void btnclick(View view){
        Bitmap bitmap=BitmapFactory.decodeFile("/mnt/sdcard/Download/timg.jpeg");
        myimg.setImageBitmap(bitmap);
    }
    

    }
    打印
    2020-08-25 17:53:46.804 18414-18414/com.fengray.ex079 D/TAG: width: 1080—height: 1776

    2.获取图片的尺寸、分辨率
    package com.fengray.ex079;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;
    
    import android.Manifest;
    import android.annotation.SuppressLint;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Point;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.ImageView;
    
    public class MainActivity extends AppCompatActivity {
        private String permssionRequestCode []={Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,
                Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS};
    
        private ImageView myimg;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ActivityCompat.requestPermissions(this, permssionRequestCode,0);
            ActivityCompat.requestPermissions(this, permssionRequestCode,1);
            ActivityCompat.requestPermissions(this, permssionRequestCode,2);
            myimg=findViewById(R.id.myImg);
    
            //获取手机的分辨率windowManager,smsManager,TelephoneManger
            WindowManager windowManager=(WindowManager)getSystemService(WINDOW_SERVICE);
            /*
            int height=windowManager.getDefaultDisplay().getHeight();//获取高
            int width=windowManager.getDefaultDisplay().getWidth();
            */
            Point point=new Point();
            windowManager.getDefaultDisplay().getSize(point);
            int width=point.x;
            int height=point.y;
            Log.d("TAG", "width: "+width+"---"+"height: "+height);
    
        }
        @SuppressLint("SdCardPath")
        public void btnclick(View view){
            //创建一个位图工厂的配置参数
            BitmapFactory.Options options=new BitmapFactory.Options();
            //解码器不去真正地解析位图,但是还能获取图片的宽和高的信息
            options.inJustDecodeBounds=true;
            BitmapFactory.decodeFile("/mnt/sdcard/Download/timg.jpeg",options);
            //myimg.setImageBitmap(bitmap);
    
            //获取图片的宽和高信息
            int imgWidth=options.outWidth;
            int imgHeight=options.outHeight;
            Log.d("TAG", "图片宽:width: "+imgWidth+"---"+"图片高:height: "+imgHeight);
    
            //Log.d("TAG", "btnclick: "+bitmap);
        }
    }
    
    3.获取图片缩放比
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;
    
    import android.Manifest;
    import android.annotation.SuppressLint;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Point;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.ImageView;
    
    public class MainActivity extends AppCompatActivity {
        private String permssionRequestCode []={Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,
                Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS};
    
        private ImageView myimg;
        int width,height;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ActivityCompat.requestPermissions(this, permssionRequestCode,0);
            ActivityCompat.requestPermissions(this, permssionRequestCode,1);
            ActivityCompat.requestPermissions(this, permssionRequestCode,2);
            myimg=findViewById(R.id.myImg);
    
            //获取手机的分辨率windowManager,smsManager,TelephoneManger
            WindowManager windowManager=(WindowManager)getSystemService(WINDOW_SERVICE);
            /*
            int height=windowManager.getDefaultDisplay().getHeight();//获取高
            int width=windowManager.getDefaultDisplay().getWidth();
            */
            Point point=new Point();
            windowManager.getDefaultDisplay().getSize(point);
            width=point.x;
            height=point.y;
            Log.d("TAG", "width: "+width+"---"+"height: "+height);
    
        }
        @SuppressLint("SdCardPath")
        public void btnclick(View view){
            //创建一个位图工厂的配置参数
            BitmapFactory.Options options=new BitmapFactory.Options();
            //解码器不去真正地解析位图,但是还能获取图片的宽和高的信息
            options.inJustDecodeBounds=true;
            BitmapFactory.decodeFile("/mnt/sdcard/Download/timg.jpeg",options);
            //myimg.setImageBitmap(bitmap);
    
            //获取图片的宽和高信息
            int imgWidth=options.outWidth;
            int imgHeight=options.outHeight;
            Log.d("TAG", "图片宽:width: "+imgWidth+"---"+"图片高:height: "+imgHeight);
    
            //计算缩放比,按照大的缩放比来
            int scale=1;
            int scaleX=imgWidth/width;
            int scaleY=imgHeight/height;
            if (scaleX>=scaleY && scaleX>scale){
                scale=scaleX;
            }
            if (scaleY<scaleX && scaleY>scale){
                scale=scaleY;
            }
    
            //按照缩放比进行显示,实际按照缩放比采样
            options.inSampleSize=scale;
            //按照缩放比解析位图
            //false则解码器真正地解析位图,但是还能获取图片的宽和高的信息
            options.inJustDecodeBounds=true;
            Bitmap bitmap=BitmapFactory.decodeFile("/mnt/sdcard/Download/timg.jpeg",options);
            myimg.setImageBitmap(bitmap);
    
            //Log.d("TAG", "btnclick: "+bitmap);
        }
    }
    
    4.获取图片副本
    package com.fengray.ex080;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Matrix;
    import android.graphics.Paint;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    public class MainActivity extends AppCompatActivity {
        private ImageView myimg1,myimg2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            myimg1=findViewById(R.id.myimg1);
            myimg2=findViewById(R.id.myimg2);
    
            //1把jpg图片转换成bitmap显示到控件上
            Bitmap srcbitmap=BitmapFactory.decodeResource(getResources(),R.drawable.gril02);
            //2操作图片
            //srcbitmap.setPixel(0, 0, Color.RED);
            myimg1.setImageBitmap(srcbitmap);
    
            //创建原图的副本,创建了一个大小和原图一样的空白的白纸
            Bitmap copybitmap=Bitmap.createBitmap(srcbitmap.getWidth(),srcbitmap.getHeight(),srcbitmap.getConfig());
            //创建一直画笔
            Paint pianter=new Paint();
            //创建一个画布,把白纸铺到画布上
            Canvas canvas=new Canvas(copybitmap);
            //开始作画,参数Matrix是矩阵的意思
            canvas.drawBitmap(srcbitmap,new Matrix(),pianter);
            //操作画出来的图片
            copybitmap.setPixel(0,0,Color.RED);
    
            //显示到第二个img控件上
            myimg2.setImageBitmap(copybitmap);
        }
    }
    

    在这里插入图片描述

    5.图形处理的api

    1、旋转:

     //创建原图的副本,创建了一个大小和原图一样的空白的白纸
            Bitmap copybitmap=Bitmap.createBitmap(srcbitmap.getWidth(),srcbitmap.getHeight(),srcbitmap.getConfig());
            //创建一直画笔
            Paint pianter=new Paint();
            //创建一个画布,把白纸铺到画布上
            Canvas canvas=new Canvas(copybitmap);
            //开始作画,参数Matrix是矩阵的意思
            Matrix matrix=new Matrix();
            //对图片进行旋转
            matrix.setRotate(20,srcbitmap.getWidth()/2,srcbitmap.getHeight()/2);
            canvas.drawBitmap(srcbitmap,matrix,pianter);
            //操作画出来的图片
            copybitmap.setPixel(0,0,Color.RED);
    
            //显示到第二个img控件上
            myimg2.setImageBitmap(copybitmap);
    

    2、缩放:

    //创建原图的副本,创建了一个大小和原图一样的空白的白纸
            Bitmap copybitmap=Bitmap.createBitmap(srcbitmap.getWidth(),srcbitmap.getHeight(),srcbitmap.getConfig());
            //创建一直画笔
            Paint pianter=new Paint();
            //创建一个画布,把白纸铺到画布上
            Canvas canvas=new Canvas(copybitmap);
            //开始作画,参数Matrix是矩阵的意思
            Matrix matrix=new Matrix();
            //对图片进行旋转
            matrix.setScale(0.5f,0.5f);//两个参数分辨是宽高的缩放倍数
            canvas.drawBitmap(srcbitmap,matrix,pianter);
            //操作画出来的图片
            copybitmap.setPixel(0,0,Color.RED);
    
            //显示到第二个img控件上
            myimg2.setImageBitmap(copybitmap);
    

    3、平移:

    //创建原图的副本,创建了一个大小和原图一样的空白的白纸
            Bitmap copybitmap=Bitmap.createBitmap(srcbitmap.getWidth(),srcbitmap.getHeight(),srcbitmap.getConfig());
            //创建一直画笔
            Paint pianter=new Paint();
            //创建一个画布,把白纸铺到画布上
            Canvas canvas=new Canvas(copybitmap);
            //开始作画,参数Matrix是矩阵的意思
            Matrix matrix=new Matrix();
            //对图片进行平移
            matrix.setTranslate(80f,0.5f);//两个参数分辨是宽高的缩放倍数
            canvas.drawBitmap(srcbitmap,matrix,pianter);
            //操作画出来的图片
            copybitmap.setPixel(0,0,Color.RED);
    
            //显示到第二个img控件上
            myimg2.setImageBitmap(copybitmap);
    

    4、镜像:
    缩放和平移的一个组合

     //创建原图的副本,创建了一个大小和原图一样的空白的白纸
            Bitmap copybitmap=Bitmap.createBitmap(srcbitmap.getWidth(),srcbitmap.getHeight(),srcbitmap.getConfig());
            //创建一直画笔
            Paint pianter=new Paint();
            //创建一个画布,把白纸铺到画布上
            Canvas canvas=new Canvas(copybitmap);
            //开始作画,参数Matrix是矩阵的意思
            Matrix matrix=new Matrix();
            //对图片进行镜像
            matrix.setScale(-1.0f,1);//负数产生翻转镜像
            //post方法在上一次基础上进行新的操作,set方法,每次都进行全新操作,不保留上次的方法
            matrix.postTranslate(srcbitmap.getWidth(),0);
    
            canvas.drawBitmap(srcbitmap,matrix,pianter);
            //操作画出来的图片
            copybitmap.setPixel(0,0,Color.RED);
    
            //显示到第二个img控件上
            myimg2.setImageBitmap(copybitmap);
    
    6.绘图板实例
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;
    
    import android.Manifest;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Matrix;
    import android.graphics.Paint;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.os.SystemClock;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.ImageView;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    
    public class MainActivity extends AppCompatActivity {
        private ImageView myimg;
        private Bitmap scrBitmap,copyBitmap;
        private Paint paint;
        private Canvas canvas;
        private int action;
        private int  startX,startY;
        private String permssionRequestCode []={Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE};
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            ActivityCompat.requestPermissions(this, permssionRequestCode,0);
            ActivityCompat.requestPermissions(this, permssionRequestCode,1);
            //用来显示绘制的内容
            myimg=findViewById(R.id.myimg);
    
            //获取原图
            scrBitmap= BitmapFactory.decodeResource(getResources(),R.drawable.gril011);
            //获取原图副本,相当于一个空白白纸
            copyBitmap=Bitmap.createBitmap(scrBitmap.getWidth(),scrBitmap.getHeight(),scrBitmap.getConfig());
            //创建空白画笔及画布
            paint=new Paint();
            canvas=new Canvas(copyBitmap);//把白纸放入画布
            //开始作画
            canvas.drawBitmap(scrBitmap,new Matrix(),paint);
            //canvas.drawLine(20,30,50,80,paint);
            //设置在画布上
            myimg.setImageBitmap(copyBitmap);
            //给控件设置一个触摸事件
            myimg.setOnTouchListener(new View.OnTouchListener() {
    
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    action=event.getAction();
                    Log.d("TAG", "onTouch: "+action);
                    switch (action){
                        //获得当前时间
                        case MotionEvent.ACTION_DOWN:
                            //获取划线起始位置
                            startX=(int)event.getX();
                            startY=(int)event.getY();
                            Log.d("TAG", "onTouch: action down "+startX+"--"+startY);
    
                            break;
                        case MotionEvent.ACTION_MOVE:
                            //获取结束位置
                            int stopX=(int)event.getX();
                            int stopY=(int)event.getY();
                            Log.d("TAG", "onTouch: action move "+stopX+"--"+stopY);
    
                           //不停的地划线
                            canvas.drawLine(startX,startY,stopX,stopY,paint);
                            //再显示到控件上
                            myimg.setImageBitmap(copyBitmap);
                            //刷新起点
                            startX=stopX;
                            startY=stopY;
                            break;
                        case MotionEvent.ACTION_UP:
                            break;
                        default:
                            break;
                    }
                    return true;
                }
            });
        }
    
        //红色Click
        public void redClick (View view){
            //设定画笔颜色
            paint.setColor(Color.RED);
        }
    
        //加粗Click
        public void boldClick (View view){
            paint.setStrokeWidth(15);
    
        }
        //保存Click
        public void saveClick (View view){
    
            try {
                Log.d("TAG", "saveClick: 11111111");
                File file=new File(Environment.getExternalStorageDirectory().getPath(),"d33.png");
                FileOutputStream fileOutputStream=new FileOutputStream(file);
                Log.d("TAG", "saveClick: 2222222");
                //第一个参数:图片的格式
                //quality:保存图片的质量
                //保存图片的文件流
                copyBitmap.compress(Bitmap.CompressFormat.PNG,100,fileOutputStream);
    
                //发送一条广播,欺骗系统图库的应用
                Intent intent=new Intent();
                //设置action
                intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
                intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));
                sendBroadcast(intent);
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    
        }
    }
    
    7.撕衣服案例

    点击时将衣服图片设置为透明

    package com.fengray.ex082;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Matrix;
    import android.graphics.Paint;
    import android.media.Image;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.ImageView;
    
    public class MainActivity extends AppCompatActivity {
        private ImageView imgPre,imgAfter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            imgPre=findViewById(R.id.imgpre);
            //imgAfter=findViewById(R.id.imgafter);
    
            //获得图片原图
            Bitmap srcbitmap= BitmapFactory.decodeResource(getResources(),R.drawable.girlpre);
            //创建图片副本,与原图大小一致
            final Bitmap copybitmap=Bitmap.createBitmap(srcbitmap.getWidth(),srcbitmap.getHeight(),srcbitmap.getConfig());
            //创建画笔、画布
            Paint paint=new Paint();
    
            Canvas canvas=new Canvas(copybitmap);
            //开始作画
            canvas.drawBitmap(srcbitmap,new Matrix(),paint);
    
            imgPre.setImageBitmap(copybitmap);
    
            imgPre.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    Log.d("TAG", "onTouch: ----");
                    //具体判断触摸事件
                    switch (event.getAction()){
    
                        case MotionEvent.ACTION_MOVE:
                            Log.d("TAG", "onTouch: ----"+event.getAction());
    
                            for (int i=-7;i<7; i++){//增加x坐标
                                for (int j=-7;j<7;j++){//增加y坐标
                                    copybitmap.setPixel((int)event.getX()+i,(int)event.getY()+j, Color.TRANSPARENT);
                                }
                            }
                            //更新一下控件
                            imgPre.setImageBitmap(copybitmap);
                    }
                    return true;
                }
            });
    
    
        }
    }
    
    8.音乐播放MediaPlayer类

    用于播放音频或者视频

    import androidx.appcompat.app.AppCompatActivity;
    
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.view.View;
    
    import java.io.IOException;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        //点击执行播放
        public void btnPlay(View view){
            //初始化MediaPlayer
            MediaPlayer mediaPlayer=new MediaPlayer();
          try {
                mediaPlayer.setDataSource("/data/media/0/Music/xkfy.mp3");
                //mediaPlayer.setDataSource("http://www.fengray.com/xkfy.mp3");网络播放使用
                mediaPlayer.setLooping(true);
                //准备播放
                mediaPlayer.prepare();
                //开始播放
                mediaPlayer.start();
                //mediaPlayer.prepareAsync();//网络播放使用
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    }
    
    9.surfaceView控件播放视频
    package com.fengray.ex083;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.ActivityCompat;
    
    import android.Manifest;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.view.SurfaceHolder;
    import android.view.SurfaceView;
    import android.view.View;
    
    import java.io.IOException;
    
    public class MainActivity extends AppCompatActivity {
        private String permssionRequestCode []={Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE};
        private SurfaceView sfv;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ActivityCompat.requestPermissions(this, permssionRequestCode,0);
            ActivityCompat.requestPermissions(this, permssionRequestCode,1);
            new Thread(){
                @Override
                public void run() {
    
                    SystemClock.sleep(400);//surfaceView是重量型控件,耗时且内部有两个线程,因此,整个逻辑要放在子线程中实现,
                    sfv=findViewById(R.id.mysv);
                    //获得surfaceholder对象,用来维护视频内容
                    SurfaceHolder holder = sfv.getHolder();
                    //初始化MediaPlayer
                    MediaPlayer mediaPlayer=new MediaPlayer();
                    try {
                        mediaPlayer.setDataSource("http://www.fengray.com/xkfy.mp4");//网络播放使用
                        //准备播放
                        mediaPlayer.prepareAsync();
                        //surfaceholder是用来维护视频播放内容的
                        mediaPlayer.setDisplay(holder);
                        //开始播放
                        mediaPlayer.start();
                        //mediaPlayer.prepareAsync();//网络播放使用
    
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    super.run();
                }
            }.start();
    
        }
    
    10.videoView控件播放视频

    videView是对surfaceView和MediaPlayer的封装

    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.widget.VideoView;
    
    public class MainActivity extends AppCompatActivity {
        private VideoView mVideoView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //找到控件
            mVideoView=findViewById(R.id.videoView);
            //设置播放路径
            mVideoView.setVideoPath("http://www.sina.com/cc.mp4");
        }
    }
    
    11.vitamio框架(开源)

    12.照相和录像

    使用隐式Intent

    package com.fengray.ex084;
    
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.hardware.camera2.CaptureRequest;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.util.Log;
    import android.view.View;
    import android.widget.VideoView;
    
    import java.io.File;
    
    public class MainActivity extends AppCompatActivity {
        private VideoView mVideoView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
        }
    
        public void click1(View view){
            Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File file=new File(Environment.getExternalStorageDirectory().getPath(),"name.png");
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
            startActivityForResult(intent,1 ) ;
        }
        public void click2(View view){
            Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File file=new File(Environment.getExternalStorageDirectory().getPath(),"name.mp4");
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
            startActivityForResult(intent,2 ) ;
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            Log.d("TAG", "onActivityResult: 方法执行了");
            super.onActivityResult(requestCode, resultCode, data);
        }
    }
    
    展开全文
  • 视频的拍摄、观看及应用在我们生活中已经非常广泛了,而分辨率决定了视频的清晰程度。分辨率与视频密切相关,可您对它了解又有多少呢?本文将全面讲解视频分辨率,带大家一起了解各种常见的分辨率以及各种设备、文件...

    文章来源:https://www.reneelab.com.cn/2k-4k-video-resolution.html

    随着人们对观看视频清晰度的追求,视频的分辨率也越来越高。但对于分辨率,大家可能还有很多疑问。比如,4K/2K/1080P/720P是什么,它们之间有什么区别?拍照手机、4K电视机、DVD、录像机等设备以及视频文件格式的分辨率又是多少?如何转换视频的分辨率?今天我们就一起来了解一下吧!
    视频分辨率

    一、视频分辨率全解释

    什么是视频分辨率?

    视频分辨率又可称为视频解析度、解像度,指的是视频图像在一个单位尺寸内的精密度。当我们把一个视频放大数倍时,就会发现许多小方点,这些点就是构成影像的单位——像素。

    视频的分辨率与像素密不可分,比如一个视频的分辨率为1280*720,就代表了这个视频的水平方向有1280个像素,垂直方向有720个像素。
    分辨率
    分辨率决定了视频图像细节的精细程度,是影响视频质量的重要因素之一。通常视频在同样大小的情况下,分辨率越高,所包含的像素就越多,视频画面就越细腻、越清晰。

    4K/2K/1080P/720P是什么?

    4K
    4K也是我们常说的4K分辨率,是指水平方向每行像素达到或接近4096个,多数情况下特指40962160分辨率。根据使用范围的不同,4K分辨率也衍生出不同的分辨率,比如Full Aperture 4K的40963112分辨率、Academy 4K 的36562664分辨率,以及UHDTV标准的38402160分辨率,这些都属于4K分辨率。
    4K分辨率
    4K级别的分辨率属于超高清分辨率,提供了800万以上的像素,可看清视频中的每一个细节。当然了,追求4K也有一定的要求,4K视频每一帧的数据量都达到了50MB,因此无论是解码播放还是编辑,都需要非常高配置的设备。由于4K视频文件比较大,下载时也需要较长时间。

    2K
    2K 即是2K分辨率,指的是水平方向的像素达到2000以上的分辨率,主流的2K分辨率有25601440以及20481080,不少的数字影院放映机主要采用的就是2K分辨率,像其他的20481536、25601600等分辨率也被视为2K分辨率的一种。
    2K分辨率
    2K的分辨率主要有哪些?

    分辨率 设备
    2048*1080 支持2K分辨率的标准设备
    2048*1536 iPad 第三代、mini2
    2560*1440 WQHD
    2560*1600 WQXGA

    1080P
    1080P 指的是1920*1080分辨率,也称为“全高清”,表示视频的水平方向有1920个像素,垂直方向有1080个像素。对于大多数的视频显示设备来说,1080P能提供更多的像素,让视频在设备上看起来更清晰。
    1080P分辨率
    现在大多数的高清电视或都以1080P的分辨率为标准,具有1080P的原始分辨率。比如高清液晶电视、等离子高清电视以及D-LLA、SXRD和DLP等前投影技术。

    720P
    720P 指的是1280*720分辨率,又称“高清”,表示的是视频的水平方向有1280个像素,垂直方向有720个像素,在视频网站上用得比较多的就是这种分辨率。720P是高清的最低标准,因此也被称为标准高清。只有达到了720P的分辨率,才能叫高清视频。
    720P分辨率

    4K/2K/1080P/720P之间的区别

    理论上来说,1080P的视频明显会比720P的视频画面更细致、更清晰,而2K的分辨率虽然与1080P的比较接近,但是也明显比1080P更加清晰的。当然了,这3种格式的分辨率需要在较大的显示屏幕上才能体现出明显区别,如果显示屏幕比较小,就不容易看出明显区别。
    多种分辨率
    4K分辨率所包含的像素是1080P的4倍,显示效果比起720P、1080P、2K是最清晰的。4K不仅分辨率比它们高,文件大小也是最大的,而且4K视频对设备的配置要求也比较高,传输与下载都需要较长时间。

    720P 1080P 2K 4K
    分辨率 1280*720 1920*1080 2560*1440 4096*2160
    像素 ≈100万 ≈200万 ≈300万 ≈800万
    画质 高清 全高清 四倍高清 超高清
    设备 电视、手机等设备 电视、手机、显示器等设备 投影等设备 投影、电视等设备
    宽高比例 16:9 16:9 16:9 ≈16:9(17:9)
    视频文件大小 90分钟大约1G以上 90分钟大约10G以上 90分钟大约15G以上 90分钟大约50G以上

    二、如何选择视频的分辨率?

    理论上来说,越高分辨率的视频就越清晰,那是不是就要一味的去追求高分辨率呢?其实不然,在同一压缩格式下,越高分辨率的视频,占用的存储空间就越大。比如4K视频,虽然它的分辨率高,但90分钟的视频就有50G以上,不仅占用的存储空间大,传输与下载的时间也需要很久。

    而且,视频的分辨率越高,对设备配置的要求也更高,如果设备本身就不支持太高的分辨率,那也没用。所以要根据自己的实际情况来选择合适的分辨率即可。

    三、如何在电脑上查看视频的分辨率?

    当您下载或录制了一个视频在电脑上,不知道分辨率是多少时,可根据以下方法来查看视频的分辨率。

    ① 右键视频文件,点击打开方法,然后选择一个播放器打开视频。
    打开方式
    ② 然后在播放列表右键该视频文件,点击【属性】。
    视频属性
    ③ 打开属性对话框,即可查看视频的分辨率。
    查看视频分辨率

    四、各种设备的分辨率是多少?

    手机

    手机的分辨率分为低端机型、中端机型以及中高端机型。低端机型的手机一般分辨率是320480,中端机型常见的是480800或者480854,而还有一些中高端机型的分辨率就是7201280。当然各种手机的分辨率都各有不同,具体还得看手机的机型、尺寸等。
    手机
    现在一些主流的手机分辨率都比较高了。下面给大家列出几个主流品牌手机的型号及分辨率:
    手机分辨率
    4K 电视

    4K电视,顾名思义就是具有4K分辨率的电视。4K分辨率在电影和视频制作行业提倡的标准是40962160,而在4K电视或显示器的标准分辨率则是38402160。
    4K电视
    DVD

    现在一般的DVD都是按照MPEG-2压缩解码的,标准分辨率为720480(NTSC制式)和720576(PAL制式)。另外,大家可能也知道HD-DVD(虽然已经被蓝光DVD淘汰),但HD-DVD与蓝光DVD的分辨率都是1920*1080,区别就是前者是隔行扫描,后者是逐行扫描。
    DVD
    录像机

    录像机一般分为两种,一种是支持原来模拟的摄像机,叫DVR;另一种则是配合数字摄像机的,叫NVR。模拟硬盘录像机DVR常用的分辨率是352288、720576。数字录像机NVR一般都支持DVR具备的分辨率,还支持1280720以及19201080。有的还特殊设置支持4K分辨率,但应用很少。

    录像机
    下面给大家列出一些主流录像机的型号及分辨率:

    品牌 型号 分辨率
    飞利浦 HDR 5750/F7 Column 2
    Swann DVR8-4500 1920*1080
    大华 DH-NVR1104HS 1920*1080
    海康 X5C-4路 1920*1080
    海康 DS-7808NB-K2 HDMI接口:40962160 ; VGA接口:19201080

    TV

    一般标清电视的分辨率为720576,液晶电视分辨率为1366768,而大多数高清电视的分辨率都可达到1920*1080。当然,现在一些标清的电视比较少见了,都是高清的电视比较多。
    TV
    VCD

    VCD 采用的是MPEG-1作为视频保存的格式,分为352288(PAL制式)以及352240(NTSC制式)两种分辨率。
    VCD
    单反相机

    单反相机的分辨率一般都有LMS三个级别,L是最大分辨率,M是中等分辨率,S是最小分辨率。每个级别对应的分辨率都不一样。
    单反相机
    下面给大家列出一些主流单反相机的型号及分辨率:

    品牌 型号 分辨率
    佳能 EOS 760D L:60004000 ; M:39842656 ; S1:29761984 ; S2:19201080 ; S3:720*480
    尼康 D5300 L:60004000 ; M:44963000 ;S:2992*2000
    索尼 A900 L:60484032 ; M1:44002936 ;M2:44002472 ;M3:28961928 ; S1:30242016 ; S2:30241704 ; S3:1984*1320

    五、各种视频文件格式支持的分辨率是多少?

    常见的视频文件格式对应的常见分辨率如下:

    • FLV格式:320240、640480
    • WMV格式:320240、640480
    • RMVB格式:640480、800600
    • MOV格式:320240、640480、768*576
    • MP4格式:320240、480360、640480、854480、1280720、19201080、3840*2160
    • AVI格式:320240、640480、768576、1280720、14401080、19201080、3840*2160

    当然,如果您在在某些情况下需要增大或减小视频的分辨率,比如您的电脑配置太低,无法播放4K视频,就需要将4K分辨率降低为电脑可支持的分辨率。那要如何更改呢?下面来提供转换视频分辨率的方法。

    六、如何转换视频的分辨率?

    都叫兽™ 视频编辑是一个多功能的视频编辑软件,您可以用它来转换视频的分辨率,可增大或减小视频的分辨率。点击此处下载

    转换视频分辨率的步骤:

    ① 下载并安装都叫兽™ 视频编辑,然后打开软件,选择【视频编辑工具】进入。
    视频编辑工具

    ② 点击上方的【添加文件】,上传视频文件到软件。
    添加文件

    ③ 点击【输出设置】进入设置页面,在【视频大小】栏选择您想要转换的分辨率(可自定义),然后点击【好】。
    视频转换设置

    ④ 设置好分辨率后,返回主页面,在输出格式栏选择视频格式(可以在目录里面选择合适的设备,以快速找到该设备支持的视频格式及分辨率),确定保存路径,点击【开始】按钮保存即可。
    转换视频

    展开全文
  • 我正在实现一款应用内相机,每次拍照时我的图像都是320×240,不过手机的相机能够分辨率更高(Galaxy Nexus)。 我找不到用于设置分辨率的参数,那么如何提高我拍摄的图像的分辨率? 这是相关的代码:@Override public...

    我正在实现一款应用内相机,每次拍照时我的图像都是320×240,不过手机的相机能够分辨率更高(Galaxy Nexus)。 我找不到用于设置分辨率的参数,那么如何提高我拍摄的图像的分辨率? 这是相关的代码:

    @Override public void surfaceCreated( SurfaceHolder holder ) { setSurfaceHolder( holder ); } @Override public void surfaceDestroyed( SurfaceHolder holder ) { setSurfaceHolder( null ); } private void attachCameraToSurface( Camera camera, SurfaceHolder holder ) { try { camera.setPreviewDisplay( holder ); setInPreview( true ); } catch (IOException e) { Log.e( "CameraFragment", "Exception in attachCameraToSurface()", e ); } } @Override public void surfaceChanged( SurfaceHolder holder, int format, int width, int height ) { Camera camera = getCamera(); if ( camera == null ) { return; } Camera.Size size = getCameraPreviewSize( camera ); Camera.Parameters params = camera.getParameters(); params.setPreviewSize( size.width, size.height ); camera.setParameters( params ); attachCameraToSurface( camera, holder ); startPreview(); } private Camera.Size getCameraPreviewSize( Camera camera ) { Camera.Parameters params = camera.getParameters(); List supportedSizes = params.getSupportedPreviewSizes(); Rect frame = getSurfaceHolder().getSurfaceFrame(); int width = frame.width(); int height = frame.height(); for (Camera.Size size : supportedSizes) { if ( size.width >= width || size.height >= height ) { return size; } } return supportedSizes.get( 0 ); } @Override public void onClick( View v ) { switch (v.getId()) { case R.id.camera_action_ImageView: getCamera().takePicture( getShutterCallback(), null, new JpegPictureCallback() ); break; } } private class JpegPictureCallback implements PictureCallback { @Override public void onPictureTaken( byte[] data, Camera camera ) { Bitmap bitmap = null; try { bitmap = BitmapFactory.decodeByteArray( data, 0, data.length ); } catch (OutOfMemoryError e) { Log.e( "CameraFragment", "Out of memory decoding image from camera.", e ); return; } data = null; if ( bitmap != null ) { new SavePictureWorker( getActivity() ).execute( bitmap ); } startPreview(); } }

    使用params.setPictureSize() 。 有关更多信息,请参阅Camera.Parameters 。

    确保首先调用params.getSupportedPictureSizes()以获取支持的图片大小数组。 然后从列表中选择一个大小并使用setPictureSize()方法设置所需的大小。

    Camera.Parameters params = camera.getParameters(); ListsupportedSizes = params.getSupportedPictureSizes(); . . Camera.Size sizePicture = (one of the sizes from supportedSizes list); . params.setPictureSize(sizePicture.width, sizePicture.height);

    Camera.Parameters param; param = camera.getParameters(); Camera.Size bestSize = null; ListsizeList = camera.getParameters().getSupportedPreviewSizes(); bestSize = sizeList.get(0); for(int i = 1; i < sizeList.size(); i++){ if((sizeList.get(i).width * sizeList.get(i).height) > (bestSize.width * bestSize.height)){ bestSize = sizeList.get(i); } } ListsupportedPreviewFormats = param.getSupportedPreviewFormats(); IteratorsupportedPreviewFormatsIterator = supportedPreviewFormats.iterator(); while(supportedPreviewFormatsIterator.hasNext()){ Integer previewFormat =supportedPreviewFormatsIterator.next(); if (previewFormat == ImageFormat.YV12) { param.setPreviewFormat(previewFormat); } } param.setPreviewSize(bestSize.width, bestSize.height); param.setPictureSize(bestSize.width, bestSize.height); camera.setParameters(param); camera.takePicture(shutterCallback, rawCallback, jpegCallback);

    确保首先调用camera.getSupportedPictureSizes()以获取支持的图片大小数组。

    实际上它是params.getSupportedPictureSizes();

    我想,你可以使用setPictureSize (int width, int height) 。 它用于设置图像尺寸,以像素为单位。

    Camera.Parameters parameters = camera.getParameters(); Listsizes = parameters.getSupportedPictureSizes(); int w = 0, h = 0; for (Camera.Size size : sizes) { if (size.width > w || size.height > h) { w = size.width; h = size.height; } } parameters.setPictureSize(w, h);

    展开全文
  • 因为要录像又要录屏,所以不可能直接用手机屏幕的实际分辨率。所以从camera.getParameters()获取宽高并设置为输出的视频的分辨率。现象是很多手机上看录制好的视频录屏那块被缩小了,其实是因为有黑边造成的。因此...

          1.问题:

          首先我的应用场景Mediacodec ,使用了摄像头流与录屏流,中间会进行切换,然后录出来一个完整的视频,也就是从摄像到录屏再到摄像再录屏,需求比较。。。因为要录像又要录屏,所以不可能直接用手机屏幕的实际分辨率。所以从camera.getParameters()获取宽高并设置为输出的视频的分辨率。现象是很多手机上看录制好的视频录屏那块被缩小了,其实是因为有黑边造成的。因此问题其实是基于录屏的输出视频分辨率为核心的,其他录屏方案也大多适用。

         2.分析

         大多数手机获取的camera的分辨率与屏幕的分辨率不一致,重要的是长宽比不一样,比如说。相机获取了1920*1080的分辨率,而你的手机是2340*1080的分辨率,在录屏的时候输出视频,第一录屏要全屏录,也就是宽是2340,第二视频不会裁剪,所以你最后要输出1920*1080,他的宽自然要缩小,高度也就跟着等比缩小,然后上下会有黑边填充。也就是其实视频最后输出的是1920*1080,之所以看起来小了是上下填充了黑边。

           所以你要做的就是一个断点一个断点的去看相机支持的分辨率,然后一个一个去算比例,然后发现一些规律,然后换一部手机,然后再执行这一套操作,然后再换一步手机。。。

          好在这些我都替你做了。

         3.处理     

          查找camera支持的分辨率中最接近手机实际屏幕比例的值

    其实是从手机支持的视频分辨率中找,不过因为也要用摄像头,视频支持的包括摄像头支持且比摄像头支持的多,所以要从摄像头支持的里找。即List<Camera.Size> prviewSizeList = myParameters.getSupportedPreviewSizes();不开摄像头的可以试着从List<Camera.Size> videoSizeList = myParameters.getSupportedVideoSizes();里找。下面是核心代码

    public void initCamera() {
        getScreenSize();
        //注:摄像头相关的设置不写了,省的看混
        ............
        Camera.Parameters myParameters = myCamera.getParameters();
        //获取摄像头支持的分辨率
        List<Camera.Size> prviewSizeList = myParameters.getSupportedPreviewSizes();
        //获取手机支持的视频分辨率
        //List<Camera.Size> videoSizeList = myParameters.getSupportedVideoSizes();
        //获取最接近的分辨的索引
        int selectIndex = bestVideoSize(prviewSizeList);
    
        ............
        //设置相机预览尺寸
        //TODO 在你设置视频大小的地方也是用这里计算出来的值,以为我设置录制视频分辨率的地方不在,
    //这,不过也是取得这里的值,所以就不写了                               
    myParameters.setPreviewSize(prviewSizeList.get(selectIndex).width,prviewSizeList.get(selectIndex).height);
    
    }
    
    int mRealSizeWidth;//手机屏幕真实宽度
    int mRealSizeHeight;//手机屏幕真实高度
    
     /**
       * 查找最接近屏幕宽高比的参数
       * @param cameraSizeList
       * @return
       */
    public int bestVideoSize(List<Camera.Size> cameraSizeList) {
            if (cameraSizeList == null) {
                return -1;
            }
            //计算屏幕的实际分辨率的比值
            float realRatio = ((float) mRealSizeWidth / (float) mRealSizeHeight);
            int index = 0;//目标索引
            float outRatio = -1f;
            for (int i = 0; i < cameraSizeList.size(); i++) {
                if (cameraSizeList.get(i).height <= mRealSizeHeight) {//取的值高度不能高于屏
    //幕真实高度
                    float ratio = (float) (cameraSizeList.get(i).width) / (float) (cameraSizeList.get(i).height);
                    if (outRatio == -1f) {
                        outRatio = Math.abs(ratio / realRatio - 1);
                        index = i;
                    } else {
                        if (outRatio > Math.abs(ratio / realRatio - 1)) {
                            //取绝对值小的值,即选择与屏幕分辨率最接近的值
                            index = i;
                            outRatio = Math.abs(ratio / realRatio - 1);
                        }else if (outRatio == Math.abs(ratio / realRatio - 1)) {
                            //如果有两组长宽比完全一样的,选择height比较大,小的可能会视频模糊
                            if (cameraSizeList.get(i).height >= cameraSizeList.get(index).height) {
                                index = i;
                                outRatio = Math.abs(ratio / realRatio - 1);
                            }
                        }
                    }
    
                }
            }
            return index;
        }
    
    
    //计算屏幕真实分辨率
    public void getScreenSize() {
            WindowManager windowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
            Display display = windowManager.getDefaultDisplay();
            Point outPoint = new Point();
            if (Build.VERSION.SDK_INT >= 19) {
                // 可能有虚拟按键的情况
                display.getRealSize(outPoint);
            } else {
                // 不可能有虚拟按键
                display.getSize(outPoint);
            }
    
            mRealSizeHeight = outPoint.y;
            mRealSizeWidth = outPoint.x;
        }

    注意:我录的是横屏,所以我比较的都是高度height,如果是竖屏,最好是用宽度width。

          安卓手机的各种各样的分辨率问题不再多说了,没办法把所有的都测一遍,从我手里的一批手机测过后都是达到了比较完美的效果(除非你手机的相机有支持与屏幕比例一模一样的分辨率,否则几乎不会是完全的全屏,最终的效果也会因手机不同有些许差异),如果有不合适的,可以在bestVideoSize()方法里通过限制你要取值的height的高度范围这个方向考虑。

    展开全文
  • 该产品将应用于带有视频录像功能手机中,支持更新一代的大电流/高亮度闪光LED。AAT1270升压型电流调节器在3×3mm STDFN封装内可提供所需的大电流值,以支持更高分辨率电荷耦合器件(CCD)图像传感器的闪光照明。  ...
  • 因使用区域受限、实施成本和入口门槛高,传统监控行业和摄像机直播系统无法借力优质云资源搭建属于自己的监控云平台,客户终端出不了监控的内网,无法做到公网实时监控与录像回放,更别说用手机、微信、H5、无插件...
  • 切换至背景录像功能进行多任务作业时需耗损大量系统资源,请视您的手机效能斟酌使用。 如果您对iPhone或iPad上的行车录像有兴趣,可以在iTune上的搜寻输入MyCar Recorder,找到此软件的iPhone/iPad版本。 注: (1)...
  • 现在的手机分辨率和帧率普遍比较高,一分钟的手机视频100M左右,一张普通的图片也有2到6M。对于这些不太重要的视频资料,丢弃又有些可惜,那么仅仅需要保留简单影像即可,我们可以使用ffmpeg.exe对文件进行瘦身,...
  • 我个人就不太喜欢带很大的手机,尤其在...再想通过增加CPU主频,和拍摄、录像分辨率来赢得消费者的青睐已经是不太切合实际。 google glass听起来比较悬,感觉以现在的集成电路工艺,是可以完成视网膜显示的。(虽然现
  • 现在的手机比较流行底部带虚拟按键,比如华为、nexus,一般情况下对开发一个APP没啥影响,但是不一般情况下就会有影响的,比如全屏录像功能, 用简单的方法直接获取camera支持的手机屏幕分辨率然后用SurfaceView全屏...
  • Android 隐藏手机底部虚拟按键

    万次阅读 2017-03-08 11:00:54
    现在的手机比较流行底部带虚拟按键,比如华为、nexus,一般情况下对开发一个APP没啥影响,但是不一般情况下就会有影响的,比如全屏录像功能, 用简单的方法直接获取camera支持的手机屏幕分辨率然后用SurfaceView...
  • 手机上直接回放视频是很普遍的,但屏幕的尺寸和分辨率的限制使高清视频无法 向用户传递其动人的高清体验。和共享移动文档和照片类似,开发人员所面临的挑战是如何分享高清视频而不令其仅限于手机内部。  在手
  • 是一款与 LG GT540 一样的照相软件,最大的特点就是能够拍完一张照片之后,可以立刻进入编辑界面,进行图片修改,包括对比度、亮度、色彩等,也可以随时切换到手机视频拍摄录像,可以设置分辨率也可以处理录音质量等...
  • 一、参数  画质:4k 60frame ... 录像分辨率:4k  1小时视频:3GB空间  照片格式:jpeg  视频格式:H.264  工作时间:140分钟  充电时间:73分钟  环境温度:0-40摄氏度  最大 micro SD:25...
  •  照片分辨率:4000X3000 有效像素:1200万 音频:48khz 录像分辨率:4k 1小时视频:3GB空间 照片格式:jpeg 视频格式:H.264 工作时间:140分钟 充电时间:73分钟 环境温度:0-40摄氏度  最大 micro SD:...
  • 7130监控卡驱动及软件

    2011-09-19 00:19:23
    ●视频输入:4-16路视频 音频输入: 0 ... ●录像分辨率: 704 x 288(PAL), 640*240(NTSC); ●压缩格式: H.264. ●做远程免设置路由器,免端口映射!所有的网络都能实现远程监控(包括铁通),支持手机监控。
  • Android使用摄像头拍照

    2019-11-06 16:41:57
    这几天在写使用摄像头录像,发现使用自己自定义的录像不能沾满全屏,在手机屏幕的右侧有一道明显的黑色,所以也就没有使用自定义了。不能使用自定义的,就只能使用原生的咯,一开始还觉得挺简单的,就跳转录像,然后...
  • 离散余弦变换引言 目前市场上流行的摄像手机一般都不具备自动聚焦功能,这对于传感器分辨率在30万像素以下的摄像手机来说影响不大,但随着百万像素手机的面世,以及手机录像功能的采用,人们对摄像头的自动聚焦功能...
  • 该产品将应用于带有视频录像功能手机中,支持更新一代的大电流/高亮度闪光LED。AAT1270升压型电流调节器在3x3-mm STDFN封装内可提供所需的大电流值,以支持更高分辨率电荷耦合器件(CCD)图像传感器的闪光照明。  ...
  • http://blog.csdn.net/dangxw_/article/details/50903693移动端...2.而且由于所取图像得分辨率必须是摄像头所提供分辨率中得一组,所以有可能需要裁剪。3.另外由于1)想让无论用户哪个方向拿手机所录的视频内容永远“...
  • 而且由于所取图像得分辨率必须是摄像头所提供分辨率中得一组,所以有可能需要裁剪。 另外由于 (1)想让无论用户哪个方向拿手机所录的视频内容永远“头朝上” ( 2)摄像头默认返回图像为横屏图像(宽大于长) 所以...
  • JVS-C690CN_V6.9.0.12.rar

    2019-05-16 09:01:53
    最新版专业监控集成软件,包含数字监控系统、数字分控系统、驱动、IE控件的集成安装。 采用了全新研发的云视通网络传输平台,传输性能较安防全球通提高了近...支持远程录像回放,支持手机监控。 支持悬浮窗口功能。
  • 中维世纪690驱动下载

    2013-01-14 13:58:05
    描述: 最新版专业监控集成软件,包含数字监控系统、数字分控系统、驱动、IE控件的集成安装。 采用了全新研发的“云视通”网络传输平台,传输性能较“安防...支持远程录像回放,支持手机监控。 支持悬浮窗口功能。
  • 智能手表的未来

    2013-09-09 09:41:53
    上周,三星在德国柏林发布了智能手表 Gear,1.63 英寸屏,分辨率320*320,厚11.1mm,重73.8克,299刀,十月上市,支持近场通讯NFC、蓝牙,跟手机关联之后可以打电话、收短信、拍照、录像等。Gear通过蓝牙与手机或...
  • 中维世纪69驱动

    2013-01-14 13:51:20
    名称:中维JVS-C690卡集成监控系统 版本:V6.9.0.7 类别:中维690卡相关软件 描述: 最新版专业监控集成软件,包含数字监控系统、数字分控系统、驱动、IE控件...支持远程录像回放,支持手机监控。 支持悬浮窗口功能。
  • 前面简单地介绍了Android程序开发中AudioRecord和AudioTrack的使用,这次再结合SurfaceView实现...本文程序使用8000hz的采样率,对X轴方向绘图的实时性要求较高,如果不降低X轴的分辨率,程序的实时性较差,因此程序对

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

手机录像分辨率