精华内容
下载资源
问答
  • 今天为大家讲解下怎么手机里实现图片轮换功能和游戏声音开关功能. 第一效果图: 第二代码: 建立一个WelcomeVIew类 import android.content.res.Resources; import android.graphics.Bitmap; import ...

    今天为大家讲解下怎么在手机里实现图片轮换功能和游戏声音开关功能.

    第一效果图:

    第二代码:

    建立一个WelcomeVIew类

    import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.media.MediaPlayer; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import com.Quwenzi.QuwenziActivity; import com.Quwenzi.R; import com.Quwenzi.Thread.WelcomeViewThread; public class WelcomeView extends SurfaceView implements SurfaceHolder.Callback{ //--------类----------// public QuwenziActivity activity; public WelcomeViewThread wv; //--------类----------// //--------图片----------// Bitmap brackgroud; Bitmap music; Bitmap musiccols; Bitmap quwenzi; Bitmap wz; Bitmap wz1; Bitmap wz2; Bitmap wz3; Bitmap wz4; Bitmap wz5; //--------图片----------// //--------常量----------// public int k=0; public boolean isSound = true;//是否播放声音 MediaPlayer mediaplayer; //--------常量----------// public WelcomeView(QuwenziActivity activity) {// 构造器 super(activity); this.activity=activity; //等到activity引用 getHolder().addCallback(this); initBimap();//初始化图片 this.wv=new WelcomeViewThread(this, getHolder()); //创建声音 mediaplayer=MediaPlayer.create(activity, R.raw.himi); mediaplayer.setLooping(true); mediaplayer.start(); } private void initBimap() { Resources r = activity.getResources(); // 获取Resources对象 // brackgroud=BitmapFactory.decodeResource(r, R.drawable.background); music=BitmapFactory.decodeResource(r,R.drawable.music); musiccols=BitmapFactory.decodeResource(r,R.drawable.musiccols); quwenzi=BitmapFactory.decodeResource(r, R.drawable.quwenzis); wz=BitmapFactory.decodeResource(r,R.drawable.wz); wz1=BitmapFactory.decodeResource(r,R.drawable.wz1); wz2=BitmapFactory.decodeResource(r,R.drawable.wz2); wz3=BitmapFactory.decodeResource(r,R.drawable.wz3); wz4=BitmapFactory.decodeResource(r,R.drawable.wz4); } public void onDraw(Canvas canvas){ canvas.drawBitmap(quwenzi, 0,0, new Paint()); canvas.drawBitmap(wz, -1,160, new Paint()); //声音 if(this.isSound){ canvas.drawBitmap(music, 280,1, new Paint());//绘制关闭声音菜单 }else{ canvas.drawBitmap(musiccols, 280,1, new Paint());//绘制打开声音 } //不断循环图片的地方 if(k == 0){ canvas.drawBitmap(wz, -1,160, null); } else if(k == 1){ canvas.drawBitmap(wz1, -1,160, null); } else if(k == 2){ canvas.drawBitmap(wz2, -1,160, null); } else if(k == 3){ canvas.drawBitmap(wz3, -1,160, null); } else{ canvas.drawBitmap(wz4, -1,160, null); } k = (k+1)%4;//不断循环,4代表旋转速度.. } public boolean onTouchEvent(MotionEvent event){ if(event.getAction()==MotionEvent.ACTION_DOWN){ double x = event.getX(); double y = event.getY(); if (x > 280 && x < 280 + musiccols.getWidth() && y > 1 && y < 1+ musiccols.getHeight()) { this.isSound =! this.isSound; //按钮制反 if(!this.isSound){ //判断是否在播放声音 if(this.mediaplayer !=null){ if(this.mediaplayer.isPlaying()){//且当前声音没有在播放 this.mediaplayer.pause(); //停止播放 } } }else{ if(this.mediaplayer != null){//当mediaplayer不为空时 if(!this.mediaplayer.isPlaying()){//且当前声音没有在播放 this.mediaplayer.start();//则播放声音 } } } } } return super.onTouchEvent(event); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { wv.setFlag(true); wv.start(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { boolean retry =true; while(retry){//停止刷帧线程 try { wv.join(); //等待线程的结束 retry=false; } catch (Exception e) {//不断地循环,直到等待的线程结束 } } } }

    第二建立个WelcomeViewThread类

    import android.graphics.Canvas; import android.view.SurfaceHolder; import com.Quwenzi.View.WelcomeView; public class WelcomeViewThread extends Thread{ public WelcomeView welcomeVew; boolean flag; int sleepSapn=100; SurfaceHolder surfaceHolder = null; public WelcomeView welcomeView; public WelcomeViewThread(WelcomeView welcomeView,SurfaceHolder surfaceHolder){ this.welcomeVew=welcomeView; //引用 this.surfaceHolder=surfaceHolder; //引用 } public void run(){ Canvas c; c=null; while(flag){ try { // 锁定整个画布,在内存要求比较高的情况下,建议参数不要为null c=surfaceHolder.lockCanvas(null); //同步WelcomeView synchronized (this.surfaceHolder) { try { welcomeVew.onDraw(c); } catch (Exception e) { } } }finally{ if(c!=null){ //更新屏幕显示内容 surfaceHolder.unlockCanvasAndPost(c); } } try{ Thread.sleep(sleepSapn); } catch (Exception e) { e.printStackTrace(); } } } public void setFlag(boolean flag){//设置循环标记 this.flag=flag; } }

    OK完成了,由于看我之前发过两篇游戏基础教程后。相信大家对Activity主类调用WelcomeView页面都很熟悉了吧,再次我不贴Activity类。如果实在不懂的话,可以留下邮箱地址..

    展开全文
  • 本来是想通过获取图片的exif图文件来确定哪些图片需要旋转,怎么旋转的,百度后发现,有些设备拍出来的图片,竟然没有exif头文件, 这条路就走不通了,发挥自己的思维,正常的图片都是竖向的,也就是宽度小于高度,...


    左图为旋转后,右图为旋转前。


    不管是做wap还是H5时,通过手机端上传的图片,在部分安卓机器上会出现图片横向显示,不管手机是竖着拍照还是横着拍照,都无法避免,

    具体原因还不清楚,目前经过测试觉得应该图片文件问题,缺少exif头文件,可通过软件来验证。


    本来是想通过获取图片的exif图文件来确定哪些图片需要旋转,怎么旋转的,百度后发现,有些设备拍出来的图片,竟然没有exif头文件,

    这条路就走不通了,发挥自己的思维,正常的图片都是竖向的,也就是宽度小于高度,如果服务器接收到图片,保存下来,这时判断图片的宽度和高度的大小,如果宽度大于高度,是不是就可以确认此图片就需要旋转呢,可能不严谨,因为,我现在遇到的问题就是这样的,并且只需要顺时针旋转90度即可。


    如果需要更复杂的判断、旋转,可在此基础完善。

    旋转图片的事件:

    string ImageUrl = imgRate.ImageUrl;
    System.Drawing.Bitmap bit = new Bitmap(Server.MapPath(ImageUrl));
            
    if(bit.Width> bit.Height)
    {
        bit = KiRotate(bit, 90, Color.White);
        string imgname = Common.GetGuid() + ".jpg";
        string FilePath = Server.MapPath(imgname);//转换物理路径
        bit.Save(FilePath);
    }
    可以做一个按钮事件,点击后,你会发现旋转后的图片已经出现了。

    下边是核心方法:

    /// <summary>
    /// 任意角度旋转
    /// </summary>
    /// <param name="bmp">原始图Bitmap</param>
    /// <param name="angle">旋转角度</param>
    /// <param name="bkColor">背景色</param>
    /// <returns>输出Bitmap</returns>
    public static Bitmap KiRotate(Bitmap bmp, float angle, Color bkColor)
    {
        int w = bmp.Width + 2;
        int h = bmp.Height + 2;
    
        PixelFormat pf;
    
        if (bkColor == Color.Transparent)
        {
            pf = PixelFormat.Format32bppArgb;
        }
        else
        {
            pf = bmp.PixelFormat;
        }
    
        Bitmap tmp = new Bitmap(w, h, pf);
        Graphics g = Graphics.FromImage(tmp);
        g.Clear(bkColor);
        g.DrawImageUnscaled(bmp, 1, 1);
        g.Dispose();
    
        GraphicsPath path = new GraphicsPath();
        path.AddRectangle(new RectangleF(0f, 0f, w, h));
        Matrix mtrx = new Matrix();
        mtrx.Rotate(angle);
        RectangleF rct = path.GetBounds(mtrx);
    
        Bitmap dst = new Bitmap((int)rct.Width, (int)rct.Height, pf);
        g = Graphics.FromImage(dst);
        g.Clear(bkColor);
        g.TranslateTransform(-rct.X, -rct.Y);
        g.RotateTransform(angle);
        g.InterpolationMode = InterpolationMode.HighQualityBilinear;
        g.DrawImageUnscaled(tmp, 0, 0);
        g.Dispose();
    
        tmp.Dispose();
    
        return dst;
    }





    展开全文
  • iPhone手机html5上传图片时,需要旋转90度,我用了exif.js,发现它有兼容问题。 用了exif之后,iPhone6、iPhone11都没问题,但是iPhone7和iPhone8还有 iPhoneX都有问题,图片并没有旋转,这个兼容该怎么解决?有...
  • opencv 图像旋转的问题 ,图片大小不变,怎么图片移到中间去,图片跟框框想切 举报描述不清违规检举侵权投诉| 分享| 2013-03-12 17:48 我的手机是N70 | 浏览 2044 次 悬赏:100 #include"cv.h" #...
    opencv 图像旋转的问题 ,图片大小不变,怎么把图片移到中间去,图片跟框框想切
    
    举报描述不清违规检举侵权投诉| 2013-03-12 17:48 我的手机是N70 | 浏览 2044 次 悬赏:100

    #include"cv.h"

    #include"highgui.h"

    #include"iostream"

     

    using namespace cv;

    using namespace std;

    int main()

    {

     Mat image=imread("mini.jpg");

     if(image.empty())

     {

      cout<<"read file failure"<<endl;

      return -1;

     }

     Point2f center=Point2f(image.cols/2,image.rows/2);//旋转中心

     double angle=30;//旋转角度

     double scale=1;//缩放尺度

     double degree=angle*CV_PI/180;

     double a=sin(degree),b=cos(degree);

     Mat image_rotate;

      image_rotate.cols= (image.cols*fabs(b)+image.rows*fabs(a));

      image_rotate.rows=(image.cols*fabs(a)+image.rows*fabs(b));

     // Point2f center=Point2f(image_rotate.cols/2,image_rotate.rows/2);//也不能把图像移到中间

     // float map[6];

     Mat rotateMat(2,3,CV_32FC1,map);

     rotateMat=getRotationMatrix2D(center,angle,scale);

    // map[2]+=(image_rotate.cols-image.cols)/2;

     //map[5]+=(image_rotate.rows-image.rows)/2;

     Mat rotateImage;

     warpAffine(image,rotateImage,rotateMat,image_rotate.size());

     imwrite("rotate_image.jpg",rotateImage);

     namedWindow("window",1);

     imshow("window",rotateImage);

     waitKey(0);

     return 0;

    }

     

     

    //#include"iostream"

    //#include"cv.h"

    //#include"highgui.h"

     

    //using namespace cv;//using namespace std;

    //int main()

    //{

     //Point2f scrTri[3];

     //Point2f dsttri[3];

     //Mat warp_mat(2,3,CV_32FC1);

     //Mat rot_mat(2,3,CV_32FC1);

     //Mat scr,warp_dst,warp_rotate_dst;

     //scr=imread("lena.jpg");

     //warp_dst=Mat::zeros(scr.type(),scr.cols,scr.rows);//重置为0

     

    //}

     

    可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

    • opencv
    • 图片大小
    • 图像
    • 旋转
    • 框框
    我有更好的答案
    举报描述不清违规检举侵权投诉| 2013-03-12 18:27 风之风信子 | 七级 最快回答

    #include "StdAfx.h"

    #include "cv.h"

    #include "highgui.h"

    #include "math.h"


    int main ()

    {

    IplImage *src = 0;

    IplImage *dst = 0;

    /* the first command line parameter must be image file name */

    if ( (src = cvLoadImage ("d:\\Image\\mini.png", -1)) != 0)

    {

    int delta = 1;

    int angle = 0;

    int opt = 0;// 1: 旋转加缩放

    // 0:  仅仅旋转

    double factor;

    dst = cvCloneImage (src);

    cvNamedWindow ("src", 1);

    cvShowImage ("src", src);

    for (;;)

    {

    float m[6];

    // Matrix m looks like:

    //

    // [ m0  m1  m2 ] ===>  [ A11  A12   b1 ]

    // [ m3  m4  m5 ]       [ A21  A22   b2 ]

    //

    CvMat M = cvMat (2, 3, CV_32F, m);

    int w = src->width;

    int h = src->height;

    if (opt)// 旋转加缩放

    factor = (cos (angle * CV_PI / 180.) + 1.0) * 2;

    else//  仅仅旋转

    factor = 1;

    m[0] = (float) (factor * cos (-angle * 2 * CV_PI / 180.));

    m[1] = (float) (factor * sin (-angle * 2 * CV_PI / 180.));

    m[3] = -m[1];

    m[4] = m[0];

    // 将旋转中心移至图像中间

    m[2] = w * 0.5f;

    m[5] = h * 0.5f;

    //  dst(x,y) = A * src(x,y) + b

    cvZero (dst);

    cvGetQuadrangleSubPix (src, dst, &M);

    cvNamedWindow ("dst", 1);

    cvShowImage ("dst", dst);

    if (cvWaitKey (1) == 27)//ESC

    break;

    angle = (int) (angle + delta) % 360;

    }// for-loop

    }

    return 0;

    }


    参考程序如上所述,如果原始图像大小不变是无法输出到原始图像的。

    比如你原始图像为200*200,旋转45度,输出到一个200*200的大小的图像空间里,这个原始图片的大小已经是原来的一半成了 根2*100*根2*100,你要保证角点相切的话,这个原始图像的大小需要根据旋转角度的大小随时改变。


    比如旋转45度,先把源图像变到100*100(我说的源图像是里面有内容的图像),而你处理的图像还是200*200的带着黑框的图片。


    进行旋转之后就是切边缘了。



    展开全文
  • 这几天犯了一个错误,初期想着甩锅给后台的,但是还好及时发现了是自身的问题~ 产生问题:通过拍照或相册回传的照片,...覆盖范围:图片旋转的情况并不是百分百出现在每个机型上,只是会出现在某一部分机型之...

    这几天犯了一个错误,初期想着甩锅给后台的,但是还好及时发现了是自身的问题~

    关联文章

    整篇思考

    • 产生问题:通过拍照或相册回传的照片,直接传入后台,在用于展示的时候,照片角度出现问题,均不规则的旋转了90度,从而导致体验效果变差!

    • 问题思考:后台一般都是你怎么存的,它怎么给你拿出来!所以在这里就可以发现问题本身是由我们前端造成的!

    • 覆盖范围:图片被旋转的情况并不是百分百出现在每个机型上,只是会出现在某一部分机型之上,但是本着兼容的原则,我们只有逐个处理

    • 解决方法:找了大约五篇博文左右,我找到了最懒也是最简单有效的方法,主要来自此篇文章,之所以没有转载而且署名原创的原因是因为更全面记录自己遇到的问题、场景、思路~


    主要代码部分,已全局进行了注释 (os:我想不会有比我还笨的人,加油把~)

    • 拍照
        /**
         * 拍照
         */
        private void takePhoto() {
    	    //拍照时存储的照片路径,最好提为全局变量,因为成功回传后需要使用到~
         String photoPath = Environment.getExternalStorageDirectory().getPath() + "/picture_dow_" + SystemClock.currentThreadTimeMillis() + ".jpg";
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(InfoActivity.this, "com.bakheet.garage.fileprovider", sdcardTempFile));
            } else {
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(sdcardTempFile));
            }
            startActivityForResult(intent, 1);
        }
    
    • 相册选取
       /**
         * 从相册选取照片
         */
        private void selectFromGallery() {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_PICK);
            intent.setType("image/*");
            startActivityForResult(intent, 2);
        }
    
    • 重写onActivityResult(此时照片已经回传,我们在这里进行图片处理)
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            switch (requestCode) {
              //拍照回传
                case 1:
                    if (resultCode == RESULT_OK && sdcardTempFile.exists()) {
    		            //主要通过PhotoBitmapUtils内的amendRotatePhoto方法保存我们拍照时的照片状态
                        String newPath = PhotoBitmapUtils.amendRotatePhoto(photoPath, this);
                        //此时的图片file就是正确的了~
                        final File newSdcardTempFile = new File(newPath);
                        //这个方法是用于传入后台的,可忽略!!!
                        uploadImage(newSdcardTempFile);
                    }
                    break;
                //相册回传
                case 2:
                    ContentResolver contentResolver = getContentResolver();
                    if (data != null) {
                        //图片的U
                        Uri uri = data.getData();
                        if (uri!=null){
                            //使用工具类获取绝对路径
                            String path = ToolUtil.getFilePathFromContentUri(uri, contentResolver);
                            if (resultCode == RESULT_OK && sdcardTempFile.exists()) {
    	                        //主要通过PhotoBitmapUtils内的amendRotatePhoto方法保存我们的照片状态
                                String newPath = PhotoBitmapUtils.amendRotatePhoto(photoPath, this);
                                 //此时的图片file就是正确的了~
                                final File newSdcardTempFile = new File(newPath);
                                 //这个方法是用于传入后台的,可忽略!!!
                                uploadImage(newSdcardTempFile);
                            }
                        }
                    }
                    break;
                default:
                    break;
            }
        }
    
    • PhotoBitmapUtils(主要工具类):
    /**
     * 集合一些图片工具
     *
     * Created by zhuwentao on 2016-07-22.
     */
    public class PhotoBitmapUtils {
     
        /**
         * 存放拍摄图片的文件夹
         */
        private static final String FILES_NAME = "/MyPhoto";
        /**
         * 获取的时间格式
         */
        public static final String TIME_STYLE = "yyyyMMddHHmmss";
        /**
         * 图片种类
         */
        public static final String IMAGE_TYPE = ".png";
     
        // 防止实例化
        private PhotoBitmapUtils() {
        }
     
        /**
         * 获取手机可存储路径
         *
         * @param context 上下文
         * @return 手机可存储路径
         */
        private static String getPhoneRootPath(Context context) {
            // 是否有SD卡
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
                    || !Environment.isExternalStorageRemovable()) {
                // 获取SD卡根目录
                return context.getExternalCacheDir().getPath();
            } else {
                // 获取apk包下的缓存路径
                return context.getCacheDir().getPath();
            }
        }
     
        /**
         * 使用当前系统时间作为上传图片的名称
         *
         * @return 存储的根路径+图片名称
         */
        public static String getPhotoFileName(Context context) {
            File file = new File(getPhoneRootPath(context) + FILES_NAME);
            // 判断文件是否已经存在,不存在则创建
            if (!file.exists()) {
                file.mkdirs();
            }
            // 设置图片文件名称
            SimpleDateFormat format = new SimpleDateFormat(TIME_STYLE, Locale.getDefault());
            Date date = new Date(System.currentTimeMillis());
            String time = format.format(date);
            String photoName = "/" + time + IMAGE_TYPE;
            return file + photoName;
        }
     
        /**
         * 保存Bitmap图片在SD卡中
         * 如果没有SD卡则存在手机中
         *
         * @param mbitmap 需要保存的Bitmap图片
         * @return 保存成功时返回图片的路径,失败时返回null
         */
        public static String savePhotoToSD(Bitmap mbitmap, Context context) {
            FileOutputStream outStream = null;
            String fileName = getPhotoFileName(context);
            try {
                outStream = new FileOutputStream(fileName);
                // 把数据写入文件,100表示不压缩
                mbitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
                return fileName;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            } finally {
                try {
                    if (outStream != null) {
                        // 记得要关闭流!
                        outStream.close();
                    }
                    if (mbitmap != null) {
                        mbitmap.recycle();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
     
        /**
         * 把原图按1/10的比例压缩
         *
         * @param path 原图的路径
         * @return 压缩后的图片
         */
        public static Bitmap getCompressPhoto(String path) {
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = false;
            options.inSampleSize = 10;  // 图片的大小设置为原来的十分之一
            Bitmap bmp = BitmapFactory.decodeFile(path, options);
            options = null;
            return bmp;
        }
     
        /**
         * 处理旋转后的图片
         * @param originpath 原图路径
         * @param context 上下文
         * @return 返回修复完毕后的图片路径
         */
        public static String amendRotatePhoto(String originpath, Context context) {
            // 取得图片旋转角度
            int angle = readPictureDegree(originpath);
            // 把原图压缩后得到Bitmap对象
            Bitmap bmp = getCompressPhoto(originpath);;
            // 修复图片被旋转的角度
            Bitmap bitmap = rotaingImageView(angle, bmp);
            // 保存修复后的图片并返回保存后的图片路径
            return savePhotoToSD(bitmap, context);
        }
     
        /**
         * 读取照片旋转角度
         *
         * @param path 照片路径
         * @return 角度
         */
        public static int readPictureDegree(String path) {
            int degree = 0;
            try {
                ExifInterface exifInterface = new ExifInterface(path);
                int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
                switch (orientation) {
                    case ExifInterface.ORIENTATION_ROTATE_90:
                        degree = 90;
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_180:
                        degree = 180;
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_270:
                        degree = 270;
                        break;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return degree;
        }
     
        /**
         * 旋转图片
         * @param angle 被旋转角度
         * @param bitmap 图片对象
         * @return 旋转后的图片
         */
        public static Bitmap rotaingImageView(int angle, Bitmap bitmap) {
            Bitmap returnBm = null;
            // 根据旋转角度,生成旋转矩阵
            Matrix matrix = new Matrix();
            matrix.postRotate(angle);
            try {
                // 将原始图片按照旋转矩阵进行旋转,并得到新的图片
                returnBm = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
            } catch (OutOfMemoryError e) {
            }
            if (returnBm == null) {
                returnBm = bitmap;
            }
            if (bitmap != returnBm) {
                bitmap.recycle();
            }
            return returnBm;
        }
    }
    
    展开全文
  • 前端解决ios手机竖拍上传图片旋转90° 完美适配:Android/ios/Windows下面是我在最近开发中,遇到的实际问题。 万恶的ios相机,不管是前摄还是后摄,拍出来上传到网页上怎么就。。就见了鬼了(我这里说的是用Ajax和...
  • 本回要从我们项目说起,今天测试的给我叫去,问我这个图片裁剪是不是有BUG,从手机相册里选的图(iOS设备)裁剪出来怎么就.....(省略好多字)。 当时本大侠就想 NND当时我做的时候就用模拟器测试的,一直从相册...
  • 家在使用手机或相机拍照片的时候,经常会看到照片方向不对,很多用户可能会使用第三方工具来调整转向,但是其实在win10系统中,我们可以使用资源管理器来批量选择照片方向,那么要怎么操作呢,现在给大家分享一下Win...
  • 自定义相机旋转拍照角度

    千次阅读 2017-07-03 17:07:55
    自定义相机拍照时有时会把手机倾斜着拍或者倒过来拍,怎么能在浏览拍摄的照片时看到的是一张正立的图片呢? 先利用传感器获得手机的拍照时的角度 private SensorManager sm = null; private SensorEventListener ...
  • 在安卓开发中,经常使用相机或是选择照片的功能,但是在部分手机上拍照或选择图片后,发现图片被自动旋转了。那我们怎么处理呢?相信这个不难,很多人都能轻易想到。下面是如果是H5调用原生相机获取照片,需要原生将...
  • 首先图片怎么在界面上显示的呢? 很容易发现到唯一 的一个对外公开的方法setImageBitmap(),所以界面上显示的图片数据源应该就是它了。那么再次定位到onDraw()方法。被设置在这个控件的数据源被一些处理后通过...
  • 可以拍照。但是拍的图片旋转了90度。怎么让它不旋转呢??是在手机浏览器上哦。
  • 表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么弄一个才30KB的图片呢? 一个简单的办法是在电脑上把图片缩小,然后截屏小图片,但现在的电脑屏幕分辨率很高,而且...
  • 这是因为在某些特定手机上例如三星系列手机上,预装的相册程序在查看图片的时候会根据拍照的时候手机旋转角度来进行自动旋转。 接下来说明一下具体怎么获取图片的拍摄角度以及如何进行旋转。 1 /// <...
  • 模仿QQ快速显示图片效果

    千次阅读 2016-02-19 23:11:59
    !第一次写博客,有什么不好... 三星手机拍照显示照片会旋转90°。(直接看项demo) 3. 截屏怎么监听广播?(其实截屏现在是没有广播的action的)那么我们就从第一个问题开始来解释吧。 想到图片路径我们可能会想到
  • 今天看了下css3中关于动画的一些内容,想到自己手机上了装了一个百度的客户端。有个换一批的功能。点击后,可以快速浏览不同的分类信息。网上找了个截图。 这个图没显示全,最下面那个 换一批 的按钮没显示出来。...
  • 特别目前在手机里拍照时,由于位置传感器的失灵,也许是软件的BUG,有一次我就遇到苹果手机不管怎么样竖放,或横放,它拍摄的照片就竖不起来,后来只有关机重启才解决。这样拍摄出来的照片,如果要改变方向,只能...
  • 做为网站前段开发人员来说,用户头像剪裁和上传是一个很常用的功能,一般这个功能涉及到图片的放大,缩小,移动,旋转,和剪裁。下面我们来做一个完整的demo,剪裁后的图片以base64的形式返回,base64怎么上传到后台...
  • 华为Image Kit图片裁剪功能给您提供设置裁剪比例、设置裁剪图形、图片旋转等一系列便捷的操作。 应用场景 我们最常用的是手机相机拍摄图片,或者用修图软件直接裁剪再进行美化,提供了方便性。 开发实战 下面给大家...
  • 现在我想开发一个App,主要功能如下:首先从手机上传一张照片到服务器,服务器将图片进行操作比如旋转,将得到的结果传回带客户端。现在的问题主要有:用什么方法将图片上传到服务器;服务器应该怎么配置,用什么...
  • uCrop源码思路分析--流程梳理

    千次阅读 2016-05-10 14:14:29
    首先要把思路弄清楚,先将这个项目运行在手机上,玩一玩,看看他都有哪些功能,然后再考虑那些功能是怎么实现的。 项目Github链接 第一阶段 折腾一番后就大致有个印象了,接下就可以分析具体功能了,且不看布局...
  • 特别目前在手机里拍照时,由于位置传感器的失灵,也许是软件的BUG,有一次我就遇到苹果手机不管怎么样竖放,或横放,它拍摄的照片就竖不起来,后来只有关机重启才解决。这样拍摄出来的照片,如果要改变方向,只能...
  • 先说遇到的问题吧,,我界面一个图片旋转动画,有个打开webview的按钮,刚刚进入的时候都正常的,但是当进入webview再返回到这个界面的时候,旋转的动画屏幕上就会出现白点(中兴Z9是这样的,别的手机还没发现),...
  • "如果有个做转盘的需求,你准备怎么做?设计师只会提供一个转盘的图片,其余都需要你完成,不能用框架和类库。" "这个转盘没有惯性的需求,只要求在手机上,用手指拖转盘,能让转盘跟随手指转起来即可。"(后注:...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

手机怎么旋转图片