精华内容
下载资源
问答
  • 推荐一个好用的拍照解题的软件?搜题软件的功能也是异常强大,只有你想不到没有搜不到,好用专业的拍照解题的软件在这里。 作业帮 作业帮是面向全国中小学生的移动学习平台,也是习题搜索、高效练习和学习沟通的...

    推荐一个好用的拍照解题的软件?搜题软件的功能也是异常强大,只有你想不到没有搜不到,好用专业的拍照解题的软件在这里。

    作业帮

    作业帮是面向全国中小学生的移动学习平台,也是习题搜索、高效练习和学习沟通的综合学习工具。

    拍照搜题,作业一拍,秒出答案。

    读题搜索:只需读出题目前几个字,立即获得精准答案。

    答案解析:多种思路、过程详细,考试不再愁!

    作文搜索:800万篇优秀范文,轻松打开思路,下笔如有神!

    阿凡题

    阿凡题推出“阿凡题-X”支持手写公式

    用户可以用阿凡题-X拍摄方程的任何变形,无论手写体还是印刷体,应用都可以在1秒钟左右给出解题步骤和答案。阿凡题推出“阿凡题-X”,作为一款独立App,其功能也会被嵌入原搜题App“阿凡题学习神器”中。在线拍照答题App阿凡题最新发布了新产品“阿凡题-X”,这是一款“拍照计算器App”(国外同类产品还有Myscript和Photomath),支持手写公式识别,可以完成加减乘除的基本运算、解一元一次方程、一元二次方程和二元一次方程组。这意味着,用户可以用阿凡题-X拍摄以上方程的任何变形,无论手写体还是印刷体,应用都可以在1秒钟左右给出解题步骤和答案。

    小猿搜题

    小猿搜题是一款为初高中学生创造的拍照搜题软件,软件操作简单,手机拍照,即可得到答案,一经推出,便受到了广大学生和家长的热捧。

    拍照搜题,操作简单,秒查答案

    拥有千万题库,全面覆盖初高中所有学科

    无需注册,下载即用,完全免费

    用户上传图片后,通过预处理、切分、Deep Learning识别、NLP纠错等步骤,将题目转化成文字,然后在题库中进行搜索和排序,最终返回题目答案以及解析,整个过程大约花费1秒钟左右的时间。

    展开全文
  • 目前人们使用手机的频率越来越高了,渐渐的,人们也就把工作也带入到了手机上,有了手机的加入, 有些工作也随之方便弄了许多。就像图片中许多不能直接复制的文字,用手机...这是一款多功能的办公软件。 2、...

    目前人们使用手机的频率越来越高了,渐渐的,人们也就把工作也带入到了手机上,有了手机的加入,

     

    有些工作也随之方便弄了许多。就像图片中许多不能直接复制的文字,用手机就可以帮我们轻松完成。

     

    工具:迅捷PDF阅读器


    操作方法如下:


    1、首先,我们需要做的是,在手机上下载一个可以帮助我们识别图片文字的工具:迅捷PDF阅读器,

     

    这是一款多功能的办公软件。

     


    2、然后我们打开它,在“小功能”这个板块里,我们可以看到有一项功能就是“拍照识别文字”。

     


    3、点击“拍照识别文字”,然后点击“相册”;

     


    4、选择你手机里需要识别的图片,上传至阅读器上,等过一会儿,图片上的文字就被识别出来了。

     


    长按文字就能将文字复制到其他地方去,有了这个工具,就不用担心图片上的不能复制的文字了,可以

     

    帮你节省很多打字的时间。

     

    转载于:https://www.cnblogs.com/ch19980708/p/9492804.html

    展开全文
  • 安卓多图片上传代码 直接上代码 1.主程序入口XML文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package=...

    安卓多图片上传代码

    直接上代码

    1.主程序入口XML文件

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.zanelove.photoapp" >
    
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.INTERNET" />
    
        <application
            android:name="com.zanelove.photoapp.MyPhotoApp_Data_Application"
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <activity
                android:name="com.zanelove.photoapp.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <activity android:name=".UploadImage_Activity"/>
        </application>
    
    </manifest>
    

    2.主程序入口代码(MainActivity)

    package com.zanelove.photoapp;
    
    import android.Manifest;
    import android.app.Activity;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.v4.app.ActivityCompat;
    import android.support.v4.content.ContextCompat;
    import android.view.View;
    import android.widget.*;
    import com.zanelove.photoapp.utils.FileUtil;
    import com.zanelove.photoapp.utils.File_Tool;
    import com.zanelove.photoapp.utils.HttpUtil;
    import com.zanelove.photoapp.utils.SelectPhotoUtil;
    import com.zanelove.photoapp.view.Pop_Viewpager_Item_Pz;
    import org.apache.http.NameValuePair;
    import org.apache.http.message.BasicNameValuePair;
    
    import java.io.*;
    import java.net.ConnectException;
    import java.util.ArrayList;
    
    public class MainActivity extends Activity implements View.OnClickListener {
        private int is_img = 0;
        private String oncline_image_tag;
        private Pop_Viewpager_Item_Pz isn;
        private LinearLayout viewpager_item_zp_ll;
        private Toast toast;
        private ArrayList<String> lists = new ArrayList<String>();
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            File_Tool.createDIRFrom("");
            File_Tool.createDIRFrom("photo");
            File_Tool.createDIRFrom("photo/image");
    
            toast = Toast.makeText(this,"",Toast.LENGTH_SHORT);
            init();
        }
    
        private void init() {
    
            initPermission();
            viewpager_item_zp_ll = (LinearLayout) this.findViewById(R.id.viewpager_item_zp_ll);
    
            ImageView viewpager_item_xj = (ImageView) this.findViewById(R.id.viewpager_item_xj);
            viewpager_item_xj.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                if (viewpager_item_zp_ll.getVisibility() == View.VISIBLE) {
                    viewpager_item_zp_ll.setVisibility(View.GONE);
                } else {
                    viewpager_item_zp_ll.setVisibility(View.VISIBLE);
                }
                }
            });
    
            ImageView pz1 = (ImageView) this.findViewById(R.id.viewpager_item_zp_1);
            pz1.setTag("pz1");
            pz1.setOnClickListener(this);
    
            ImageView pz2 = (ImageView) this.findViewById(R.id.viewpager_item_zp_2);
            pz2.setTag("pz2");
            pz2.setOnClickListener(this);
    
            ImageView pz3 = (ImageView) this.findViewById(R.id.viewpager_item_zp_3);
            pz3.setTag("pz3");
            pz3.setOnClickListener(this);
    
            ImageView pz4 = (ImageView) this.findViewById(R.id.viewpager_item_zp_4);
            pz4.setTag("pz4");
            pz4.setOnClickListener(this);
    
            TextView next_tv = (TextView) this.findViewById(R.id.viewpager_item_next);
            next_tv.setText("提交");
            next_tv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    new Put_UserAnser_Task().execute();
                }
            });
    
            isn = new Pop_Viewpager_Item_Pz(this);
        }
    
        private static final int CAMERA_WITH_DATA = 1001;
        private static final int PHOTO_PICKED_WITH_DATA = 1002;
    
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode != RESULT_OK)
                return;
            switch (requestCode) {
                case PHOTO_PICKED_WITH_DATA: // 从本地选择图片
                    Uri selectedImageUri = data.getData();
                    if (selectedImageUri != null) {
                        this.setImageViewByTask(FileUtil.getPath(this, data.getData()));
                    }
                    break;
    
                case CAMERA_WITH_DATA: // 拍照
                    SelectPhotoUtil.doPhoto(this);
                    break;
            }
            super.onActivityResult(requestCode, resultCode, data);
        }
        /**
         * 根据图片的绝对地址. 给指定Tag标签的图片赋值.
         *
         * @param img_path
         */
        public void setImageViewByTask(String img_path) {
            ImageView iv = (ImageView) viewpager_item_zp_ll.findViewWithTag(oncline_image_tag);
    
            String ys_path = ys_img(img_path);
    
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(ys_path);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            Bitmap bm = BitmapFactory.decodeStream(fis);
            iv.setImageBitmap(bm);
    
            /**
             * 设置下一个增加图片的按钮.
             */
            int i = Integer.parseInt(oncline_image_tag.substring(oncline_image_tag.length() - 1, oncline_image_tag.length()));
            String tags = oncline_image_tag.substring(0, oncline_image_tag.length() - 1);
            ImageView next_iv = (ImageView) viewpager_item_zp_ll.findViewWithTag(tags + (i + 1));
            if (i != 4) {
                if (i == 3) {
                    next_iv = (ImageView) viewpager_item_zp_ll.findViewWithTag(tags + "4");
                } else {
                    next_iv = (ImageView) viewpager_item_zp_ll.findViewWithTag(tags + (i + 1));
                }
                is_img++;
                next_iv.setVisibility(View.VISIBLE);
            }
            lists.add(img_path);
        }
    
        /**
         * 压缩图片.
         */
        private String ys_img(String img_path) {
    
            String[] path_arr = img_path.split("/");
            String[] name_arr = path_arr[path_arr.length - 1].split("\\.");
            String path = File_Tool.SDPATH + "image/" + name_arr[0] + ".png";
    
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            // 获取这个图片的宽和高
            Bitmap bitmap = BitmapFactory.decodeFile(img_path, options); // 此时返回bm为空
            options.inJustDecodeBounds = false;
            // 计算缩放比
            int be = (int) (options.outHeight / 60);
            if (be <= 0)
                be = 1;
            options.inSampleSize = be;
            // 重新读入图片,注意这次要把options.inJustDecodeBounds 设为 false哦
            bitmap = BitmapFactory.decodeFile(img_path, options);
            int w = bitmap.getWidth();
            int h = bitmap.getHeight();
            ImageView iv = new ImageView(this);
            iv.setImageBitmap(bitmap);
            //bitmap = compressImage(Bitmap.createScaledBitmap(bitmap, bitmap.getWidth(), bitmap.getHeight(), false));
            // 这样我们就可以读取较大的图片而不会内存溢出了。如果你想把压缩后的图片保存在Sdcard上的话就很简单了:
            File file = new File(path);
            try {
                FileOutputStream out = new FileOutputStream(file);
                if (bitmap.compress(Bitmap.CompressFormat.PNG, 50, out)) {
                    out.flush();
                    out.close();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return path;
        }
    
        /**
         * 提交用户文字答案接口数据.
         *
         * @author wanglei
         */
        class Put_UserAnser_Task extends AsyncTask<String, Integer, String> {
            ArrayList<String> id_list = new ArrayList<String>();
    
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }
    
            @Override
            protected String doInBackground(String... arg0) {
                MyPhotoApp_Data_Application myphoto = (MyPhotoApp_Data_Application) getApplication();
                //TODO
                String url = myphoto.getUrl_host() + "port&a=userPaperAnswer" + "&sid=" + myphoto.getSessionid(), resurt = "";
                ArrayList<NameValuePair> val_list = new ArrayList<NameValuePair>();
                try {
                    val_list.add(new BasicNameValuePair("is_img", is_img > 0 ? "1" : "0")); // $is_img=1有照片,
                    resurt = HttpUtil.getData(MainActivity.this, url, val_list, HttpUtil.METHOD_POST);
                } catch (ConnectException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return resurt;
            }
    
            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                if ("1".equals(result)) {
                    if (is_img > 0) {
                        int img_sum = 0;
                        Intent intent = new Intent(MainActivity.this, UploadImage_Activity.class);
    
                        for (int i=0;i<4;i++) {
                            img_sum++;
                            id_list.add(""+(i+1));
                        }
                        intent.putExtra("img_sum", img_sum);
                        intent.putStringArrayListExtra("id_list", id_list);
                        intent.putStringArrayListExtra("lists", lists);
    
                        MainActivity.this.startActivityForResult(intent, 101);
                        MainActivity.this.finish();
                    } else {
                        toast.setText("提交成功");
                        toast.show();
                    }
                } else {
                    toast.setText("提交失败");
                    toast.show();
                }
            }
        }
    
        @Override
        public void onClick(View v) {
            oncline_image_tag = v.getTag().toString();
            isn.show();
        }
    
        private void initPermission() {
            String permissions[] = {Manifest.permission.RECORD_AUDIO,
                    Manifest.permission.ACCESS_NETWORK_STATE,
                    Manifest.permission.INTERNET,
                    Manifest.permission.READ_PHONE_STATE,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE
            };
    
            ArrayList<String> toApplyList = new ArrayList<String>();
    
            for (String perm :permissions){
                if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(this, perm)) {
                    toApplyList.add(perm);
                    //进入到这里代表没有权限.
    
                }
            }
            String tmpList[] = new String[toApplyList.size()];
            if (!toApplyList.isEmpty()){
                ActivityCompat.requestPermissions(this, toApplyList.toArray(tmpList), 123);
            }
    
        }
    }

    3.主程序页面(activity_main.xml)XML文件

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scrollbars="vertical"
                android:background="@color/color_white">
    
        <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="@dimen/size_50dp" >
    
            <TextView
                    android:id="@+id/viewpager_item_title"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/size_14dp"
                    android:padding="@dimen/size_14dp"
                    android:textColor="@color/color_000"
                    android:textSize="@dimen/size_14dp" />
    
            <RelativeLayout
                    android:id="@+id/viewpager_item_viewed"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/viewpager_item_title"
                    android:layout_marginLeft="@dimen/size_14dp"
                    android:layout_marginRight="@dimen/size_14dp"
                    android:background="@drawable/bg_ed_shape" >
    
                <EditText
                        android:id="@+id/viewpager_item_edittext"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@null"
                        android:gravity="top"
                        android:hint="@string/viewpager_edittext_hint"
                        android:inputType="textMultiLine"
                        android:maxLines="50"
                        android:minHeight="@dimen/size_150dp"
                        android:padding="@dimen/size_14dp"
                        android:textColor="@color/color_000"
                        android:textColorHint="@color/color_c"
                        android:textSize="@dimen/size_14dp" />
    
                <LinearLayout
                        android:id="@+id/viewpager_item_zp_ll"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_above="@+id/line"
                        android:orientation="horizontal"
                        android:padding="@dimen/size_10dp"
                        android:visibility="gone" >
    
                    <ImageView
                            android:id="@+id/viewpager_item_zp_1"
                            android:layout_width="@dimen/size_40dp"
                            android:layout_height="@dimen/size_40dp"
                            android:background="@drawable/xk" />
    
                    <ImageView
                            android:id="@+id/viewpager_item_zp_2"
                            android:layout_width="@dimen/size_40dp"
                            android:layout_height="@dimen/size_40dp"
                            android:layout_marginLeft="@dimen/size_10dp"
                            android:background="@drawable/xk"
                            android:visibility="gone" />
    
                    <ImageView
                            android:id="@+id/viewpager_item_zp_3"
                            android:layout_width="@dimen/size_40dp"
                            android:layout_height="@dimen/size_40dp"
                            android:layout_marginLeft="@dimen/size_10dp"
                            android:background="@drawable/xk"
                            android:visibility="gone" />
    
                    <ImageView
                            android:id="@+id/viewpager_item_zp_4"
                            android:layout_width="@dimen/size_40dp"
                            android:layout_height="@dimen/size_40dp"
                            android:layout_marginLeft="@dimen/size_10dp"
                            android:background="@drawable/xk"
                            android:visibility="gone" />
                </LinearLayout>
    
                <ImageView
                        android:id="@+id/line"
                        android:layout_width="match_parent"
                        android:layout_height="1dp"
                        android:layout_below="@+id/viewpager_item_edittext"
                        android:background="@color/color_c9" />
    
                <RelativeLayout
                        android:id="@+id/viewpager_item_viewxj"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/viewpager_item_edittext"
                        android:layout_margin="1dp"
                        android:background="@color/color_bg_hui" >
    
                    <ImageView
                            android:id="@+id/viewpager_item_xj"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:padding="@dimen/size_13dp"
                            android:src="@drawable/xj" />
                </RelativeLayout>
    
                <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/viewpager_item_viewxj" />
            </RelativeLayout>
    
            <TextView
                    android:id="@+id/viewpager_item_next"
                    style="@style/bt_style_bgtowhite"
                    android:layout_below="@+id/viewpager_item_viewed"
                    android:layout_marginTop="@dimen/size_27dp" />
        </RelativeLayout>
    
    </ScrollView>
    

    4.上传图片代码(UploadImage_Activity)

    package com.zanelove.photoapp;
    
    import android.app.Activity;
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.widget.RemoteViews;
    import android.widget.TextView;
    import com.zanelove.photoapp.utils.File_Tool;
    import com.zanelove.photoapp.view.CircleProgressBar;
    
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.Timer;
    import java.util.TimerTask;
    
    /**
     * 上传图片
     */
    public class UploadImage_Activity extends Activity {
    
        private int len = 0;
        private NotificationManager manager;
        private Notification notif;
        private ArrayList<String> id_list;
        private TextView title_info;
        private CircleProgressBar circleProgressBar;
        private MyPhotoApp_Data_Application myapp;
        private ArrayList<String> lists;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.upload_image);
            myapp = (MyPhotoApp_Data_Application) getApplication();
            init_PutImg();
        }
        private void init_PutImg() {
    
            title_info = (TextView) findViewById(R.id.title_info);
    
            PendingIntent pIntent = PendingIntent.getActivity(UploadImage_Activity.this, 0, new Intent(), 0);
            manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            notif = new Notification();
            notif.icon = R.drawable.ic_launcher;
            notif.tickerText = "正在上传作答文件";
            notif.flags = Notification.FLAG_AUTO_CANCEL;
    
            // 通知栏显示所用到的布局文件
            notif.contentView = new RemoteViews(getPackageName(), R.layout.content_view);
            notif.contentIntent = pIntent;
            manager.notify(0, notif);
            manager.cancel(0);
    
            circleProgressBar = (CircleProgressBar) findViewById(R.id.circleProgressbar);
            circleProgressBar.setProgress(0);
    
            new UploadImageThread().start();
        }
    
        private Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {
                    case 0:
                        notif.contentView.setTextViewText(R.id.content_view_text1, len + " %");
                        notif.contentView.setProgressBar(R.id.content_view_progress, 100, len, false);
                        manager.notify(0, notif);
                        circleProgressBar.setProgress(len);
                        break;
                    case 1:
                        title_info.setText("作答上传完成");
                        manager.cancel(0);
                        break;
                    default:
                        break;
                }
            }
        };
    
        private class UploadImageThread extends Thread {
            private Timer timer = new Timer();
    
            @Override
            public void run() {
                super.run();
                id_list = getIntent().getStringArrayListExtra("id_list");
                lists = getIntent().getStringArrayListExtra("lists");
                int img_sum = getIntent().getIntExtra("img_sum", 1), num = 0;
                int d = 100 / img_sum;
    
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        Message msg = new Message();
                        msg.what = 0;
                        msg.obj = len;
                        handler.sendMessage(msg);
    
                        if (len == 100) {
                            timer.cancel();
                            handler.sendEmptyMessage(1);
                        } else {
                            if (len < 95) {
                                len++;
                            }
                        }
    
                    }
                }, 0, 1000);
                for (String img_path : lists) {
                    int n = 0;
                    for (String id : id_list) {
                        upload(img_path, "zanelove" + "_" + id + "_" + n);
                        n++;
                        num++;
                        len = num * d;
                    }
                }
    
                len = 100;
            }
        }
    
        private void upload(String pathToOurFile, String name) {
            HttpURLConnection connection = null;
            DataOutputStream outputStream = null;
            //TODO
            String urlServer = myapp.getUrl_host() + "port&a=uploadPic&id=" + name + "&ueid=" + "*" + "&tcid=" + "*" + "&sid=" + myapp.getSessionid();
            String lineEnd = "\r\n";
            String twoHyphens = "--";
            String boundary = "*****";
    
            int bytesRead, bytesAvailable, bufferSize;
            byte[] buffer;
            int maxBufferSize = 1 * 1024 * 1024;
    
            try {
    
                FileInputStream fileInputStream = new FileInputStream(new File(upload_ys_img(pathToOurFile)));
    
                URL url = new URL(urlServer);
                connection = (HttpURLConnection) url.openConnection();
    
                // Allow Inputs &amp; Outputs.
                connection.setDoInput(true);
                connection.setDoOutput(true);
                connection.setUseCaches(false);
    
                connection.setRequestMethod("POST");
    
                connection.setRequestProperty("Connection", "Keep-Alive");
                connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
    
                outputStream = new DataOutputStream(connection.getOutputStream());
                outputStream.writeBytes(twoHyphens + boundary + lineEnd);
                outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadfile\";filename=\"" + pathToOurFile + "\"" + lineEnd);
                outputStream.writeBytes(lineEnd);
    
                bytesAvailable = fileInputStream.available();
                bufferSize = Math.min(bytesAvailable, maxBufferSize);
                buffer = new byte[bufferSize];
    
                // Read file
                bytesRead = fileInputStream.read(buffer, 0, bufferSize);
    
                while (bytesRead > 0) {
                    outputStream.write(buffer, 0, bufferSize);
                    bytesAvailable = fileInputStream.available();
                    bufferSize = Math.min(bytesAvailable, maxBufferSize);
                    bytesRead = fileInputStream.read(buffer, 0, bufferSize);
                }
    
                outputStream.writeBytes(lineEnd);
                outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
    
    			//取得Response内容
                InputStream is = connection.getInputStream();
    
                int ch;
                StringBuffer sbf = new StringBuffer();
                while ((ch = is.read()) != -1) {
                    sbf.append((char) ch);
                }
    
                fileInputStream.close();
                outputStream.flush();
                outputStream.close();
            } catch (Exception ex) {
                // Exception handling
            }
        }
    
        /**
         * 压缩用于上传的图片
         */
    
        private String upload_ys_img(String img_path) {
    
            String[] path_arr = img_path.split("/");
            String[] name_arr = path_arr[path_arr.length - 1].split("\\.");
            String path = File_Tool.SDPATH + "image/" + name_arr[0] + ".png";
    
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            // 获取这个图片的宽和高
            Bitmap bitmap = BitmapFactory.decodeFile(img_path, options); // 此时返回bm为空
            options.inJustDecodeBounds = false;
            // 计算缩放比
            int be = (int) (options.outHeight / 1280);
            if (be <= 0)
                be = 1;
            options.inSampleSize = be;
            // 重新读入图片,注意这次要把options.inJustDecodeBounds 设为 false哦
            bitmap = BitmapFactory.decodeFile(img_path, options);
            int w = bitmap.getWidth();
            int h = bitmap.getHeight();
            bitmap = compressImage(Bitmap.createScaledBitmap(bitmap, bitmap.getWidth(), bitmap.getHeight(), false));
            // 这样我们就可以读取较大的图片而不会内存溢出了。如果你想把压缩后的图片保存在Sdcard上的话就很简单了:
            File file = new File(path);
            try {
                FileOutputStream out = new FileOutputStream(file);
                if (bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out)) {
                    out.flush();
                    out.close();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return path;
        }
    
        private Bitmap compressImage(Bitmap image) {
    
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            image.compress(Bitmap.CompressFormat.JPEG, 80, baos);// 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
            int options = 100;
            while (baos.toByteArray().length / 1024 > 100 && options > 30) { // 循环判断如果压缩后图片是否大于100kb,大于继续压缩
                options -= 10;// 每次都减少10
                baos.reset();// 重置baos即清空baos
                image.compress(Bitmap.CompressFormat.JPEG, options, baos);// 这里压缩options%,把压缩后的数据存放到baos中
            }
            ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());// 把压缩后的数据baos存放到ByteArrayInputStream中
            Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);// 把ByteArrayInputStream数据生成图片
            return bitmap;
        }
    
        public static byte[] readInputStream(InputStream inStream) throws Exception {
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = inStream.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            inStream.close();
            return outStream.toByteArray();
        }
    }
    

    5.设置获取图片还是照片

    package com.zanelove.photoapp.view;
    
    
    import android.app.Activity;
    import android.app.Dialog;
    import android.content.Intent;
    import android.view.Display;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.TextView;
    import com.zanelove.photoapp.R;
    import com.zanelove.photoapp.utils.SelectPhotoUtil;
    
    /**
     *
     * 设置获取图片还是照片
     * Created by zanelove on 2019-5-5.
     *
     */
    public class Pop_Viewpager_Item_Pz {
    
        private static final int CAMERA_WITH_DATA = 1001;
        private static final int PHOTO_PICKED_WITH_DATA = 1002;
        private Activity activity;
        private TextView viewpager_pop_pz_pz, viewpager_pop_pz_xc, viewpager_pop_pz_back;
    
        public Dialog mDialog;
    
        public Dialog getmDialog() {
            return mDialog;
        }
    
        public void setmDialog(Dialog mDialog) {
            this.mDialog = mDialog;
        }
    
        public Pop_Viewpager_Item_Pz(Activity context) {
            activity = context;
            mDialog = new Dialog(context, R.style.Setting_Question_Submit_Dialog_Style);
    
            mDialog.setContentView(R.layout.viewpager_item_pop_pz);
            Window window = mDialog.getWindow();
            WindowManager wm = context.getWindowManager();
            Display d = wm.getDefaultDisplay(); // 获取屏幕宽、高用
            WindowManager.LayoutParams p = window.getAttributes();
            p.width = (int) (d.getWidth() * 0.85);
            window.setAttributes(p);
            mDialog.setFeatureDrawableAlpha(Window.FEATURE_OPTIONS_PANEL, 0);
            window.setWindowAnimations(android.R.anim.fade_in);
    
            viewpager_pop_pz_pz = (TextView) mDialog.findViewById(R.id.viewpager_pop_pz_pz);
            viewpager_pop_pz_pz.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    doTakePhoto();
                }
            });
            viewpager_pop_pz_xc = (TextView) mDialog.findViewById(R.id.viewpager_pop_pz_xc);
            viewpager_pop_pz_xc.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    doSelectImageFromLoacal();
                }
            });
    
            viewpager_pop_pz_back = (TextView) mDialog.findViewById(R.id.viewpager_pop_pz_back);
            viewpager_pop_pz_back.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    dismiss();
                }
            });
        }
    
        public void show() {
            mDialog.show();
        }
    
        public void dismiss() {
            mDialog.dismiss();
        }
    
        /**
         * 拍照获取图片
         */
        private void doTakePhoto() {
            SelectPhotoUtil.takePhoto(activity);
            mDialog.dismiss();
        }
    
        /**
         * 从本地手机中选择图片
         */
        private void doSelectImageFromLoacal() {
            Intent localIntent = new Intent();
            localIntent.setType("image/*");
            localIntent.setAction(Intent.ACTION_GET_CONTENT);
            localIntent.addCategory(Intent.CATEGORY_OPENABLE);
            Intent localIntent2 = Intent.createChooser(localIntent, "选择图片");
            activity.startActivityForResult(localIntent2, PHOTO_PICKED_WITH_DATA);
    
            mDialog.dismiss();
        }
    }
    

    6.使用照相机拍照获取图片

    package com.zanelove.photoapp.utils;
    
    import android.app.Activity;
    import android.content.ContentValues;
    import android.content.Intent;
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.Build;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.widget.Toast;
    import com.zanelove.photoapp.MainActivity;
    
    /**
     * Created by zanelove on 2019-5-5.
     */
    public class SelectPhotoUtil {
        /**
         * 使用照相机拍照获取图片
         */
        public static final int SELECT_PIC_BY_TACK_PHOTO = 1001;
    
        private static Uri photoUri;
        private static String picPath = null;
    
        /**
         * 拍照获取图片
         */
        public static void takePhoto(Activity activity) {
    
            String SDState = Environment.getExternalStorageState();
            if (SDState.equals(Environment.MEDIA_MOUNTED)) {
    
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//"android.media.action.IMAGE_CAPTURE"
    
                ContentValues values = new ContentValues();
                photoUri = activity.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
    
                activity.startActivityForResult(intent, SELECT_PIC_BY_TACK_PHOTO);
            } else {
                Toast.makeText(activity, "内存卡不存在", Toast.LENGTH_LONG).show();
            }
        }
    
        /**
         * 选择图片后,获取图片的路径
         * @param activity
         */
        public static void doPhoto(Activity activity) {
    
            String[] pojo = {MediaStore.Images.Media.DATA};
            Cursor cursor = activity.managedQuery(photoUri, pojo, null, null, null);
            if (cursor != null) {
                int columnIndex = cursor.getColumnIndexOrThrow(pojo[0]);
                cursor.moveToFirst();
                picPath = cursor.getString(columnIndex);
                try {
                    //4.0以上的版本会自动关闭 (4.0--14; ; 4.0.3--15)
                    if (Integer.parseInt(Build.VERSION.SDK) < 14) {
                        cursor.close();
                    }
                } catch (Exception e) {
                }
            }
            if (picPath != null && (picPath.endsWith(".png") || picPath.endsWith(".PNG") || picPath.endsWith(".jpg") || picPath.endsWith(".JPG"))) {
                if(activity instanceof MainActivity) {
                    ((MainActivity)activity).setImageViewByTask(picPath);
                }
            } else {
                Toast.makeText(activity, "选择图片文件不正确", Toast.LENGTH_LONG).show();
            }
        }
    }

    7.监听上传进度页面(content_view.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <ImageView
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="@dimen/size_10dp"
            android:layout_marginRight="@dimen/size_10dp"
            android:background="@drawable/ic_launcher" />
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginRight="@dimen/size_10dp"
            android:layout_toRightOf="@+id/icon" >
    
            <TextView
                android:id="@+id/content_view_text1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="@dimen/size_8dp"
                android:text="0 %"
                android:textColor="@color/color_c50619"
                android:textSize="@dimen/size_14dp" />
    
            <ProgressBar
                android:id="@+id/content_view_progress"
                style="@android:style/Widget.ProgressBar.Horizontal"
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:layout_below="@+id/content_view_text1"
                android:layout_marginTop="14dp"
                android:max="100"
                android:progressDrawable="@drawable/barcolor" />
        </RelativeLayout>
    
    </RelativeLayout>

    8.上传进度条展示页面(upload_image.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@color/color_bg_hui" >
    
        <include
                android:id="@+id/yuan"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                layout="@layout/my_circle_progressbar_relativelayout" />
    
        <TextView
                android:id="@+id/title_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/yuan"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="@dimen/size_25dp"
                android:text="@string/upload_image_text"
                android:textColor="@color/color_666"
                android:textSize="@dimen/size_16dp" />
    
    </RelativeLayout>

    10.选择拍照和选取图片UI页面(viewpager_item_pop_pz.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
    
        <ImageView
                android:id="@+id/viewpager_pop_pz_iv"
                android:layout_width="match_parent"
                android:layout_height="@dimen/size_20dp"
                android:layout_alignParentBottom="true" />
    
        <TextView
                android:id="@+id/viewpager_pop_pz_back"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/viewpager_pop_pz_iv"
                android:layout_marginTop="@dimen/size_12dp"
                android:background="@drawable/viewpager_pop_pz_shape"
                android:clickable="true"
                android:gravity="center"
                android:padding="@dimen/size_12dp"
                android:text="取消"
                android:textColor="@drawable/bt_bg_selector_bgtofc4025_tv"
                android:textSize="@dimen/size_20dp" />
    
        <RelativeLayout
                android:id="@+id/viewpager_pop_pz"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/viewpager_pop_pz_back"
                android:background="@drawable/viewpager_pop_pz_shape" >
    
            <TextView
                    android:id="@+id/viewpager_pop_pz_pz"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:clickable="true"
                    android:gravity="center"
                    android:padding="@dimen/size_12dp"
                    android:text="拍照"
                    android:textColor="@drawable/bt_bg_selector_bgtofc4025_tv"
                    android:textSize="@dimen/size_20dp" />
    
            <ImageView
                    android:id="@+id/viewpager_pop_pz_line"
                    android:layout_width="match_parent"
                    android:layout_height="0.5dp"
                    android:layout_below="@+id/viewpager_pop_pz_pz"
                    android:background="@color/color_c9" />
    
            <TextView
                    android:id="@+id/viewpager_pop_pz_xc"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/viewpager_pop_pz_line"
                    android:clickable="true"
                    android:gravity="center"
                    android:padding="@dimen/size_12dp"
                    android:text="从相册选取"
                    android:textColor="@drawable/bt_bg_selector_bgtofc4025_tv"
                    android:textSize="@dimen/size_20dp" />
        </RelativeLayout>
    
    </RelativeLayout>

    源代码下载

    展开全文
  • 微信是大家比较熟悉的社交软件,而依托于微信这个十亿多流量存在的小程序,则越来越多种多样,那么如何制作一个活动打卡小程序呢?线上签到打卡的玩法有哪些? 在现实生活中,签到打卡我们可以使用手写签到,每个人...
    <h1 id="myH1"></h1>
    <p id="myP"></p>
    <script>
    // 输出标题:
    document.getElementById("myH1").innerHTML="Welcome to my Homepage";
    // 输出段落:
    document.getElementById("myP").innerHTML="This is my first paragraph.";
    </script>
    <p><b>注释:</b>注释不会被执行。</p>
    

    微信是大家比较熟悉的社交软件,而依托于微信这个十亿多流量存在的小程序,则越来越多种多样,那么如何制作一个活动打卡小程序呢?线上签到打卡的玩法有哪些?

      在现实生活中,签到打卡我们可以使用手写签到,每个人在事先打印好的电子表格里,写下自己的姓名进行签到;或者可以在签到墙上进行签到,拍照打卡。

       除此之外,我们还可以进行电子签到打卡,电子签到的好处是简化信息登记的手续,便于活动现场的控场、信息传递以及活动后的客户跟进、调查反馈。AR签到、刷脸签到等则是在信息收集的基础上,尽可能把活动做得更有趣,满足大众的猎奇心理,同时达到活动传播的目的。

       下面我们介绍的这个,就是通过微信小程序的方式来实现的一个电子化的打卡方式,活动发起者,可以创建活动,设置好活动信息,然后转发给参与者进行打卡活动。参与者只要微信扫一扫活动的二维码即可加入参加活动。整个系统的使用方法介绍如下:

       首先,活动发起者,可以通过这个微信小程序,创建一场活动,然后在这场活动里设置一个或者多个点位供大家打卡签到。

       每个点位可以设置点位的介绍,设置这个地点的经纬度,以及需要在这个地点周围多少米范围内才能打卡签到。也可以设置签到的时间,比如是每天的8:00—18:00签到。

       用户进入到活动以后,只要走到了活动设置的点位周围指定的范围内,就可以实现打卡签到。在打卡签到的过程中,为了实现趣味性,还可以发表打卡心情,发文字配上图片。并可以获取自己的运动步数。根据运动步数进行排名等。

       同时还可查看本次打卡活动排行榜数据,排行榜是最能让成员了解自我的功能之一。通过排行榜,成员可以查看到自己与他人的数据排名状况,在了解目前打卡数据排名的同时,还可以激发成员之间良性竞争,使圈子中的打卡活动更加活跃有趣。
    如下图是活动打卡签到小程序界面 : 

    根据大家打卡签到完成的时间和完成的数量进行排名。完成数量越多排在越前,打卡签到的数量一样的,就看完成的时间,谁最先完成,就谁排在最前面。

    上面介绍的是单次打卡活动的玩法,同时还可以创建周期打卡。比如读书节,可以在每个月组织一次这样的活动。每天打卡签到自己读书的心得,每天分享到活动里,然后月底,系统自动统计这一个月里,所有人打卡分享的天数。谁累计坚持打卡的天数最多,进行所有的排名。从高到低依次进行排名。、

    整个系统支持用户自行创建活动,生成自己活动的二维码以及活动展示页面。创建者可以分享这个二维码到朋友圈,或者转发这个活动页面到微信群,其他人扫码或者点击即可进入到这个活动,参与并完成这个活动的打卡。

    整个活动可以设置一个或者多个地点,所以如果是一个地点,那么就可以适合线下会议这种模式的打卡签到。如果是设置的多个点,就适合一些线下活动,需要集齐多个活动地点,打卡完毕获得活动的名次。

    所有签到打卡的用户名单都可以导出成Excel表格。方便活动发起者管理。

     应用场景:

    活动打卡适用于一些大型连锁店以及公司周年庆等。消费者只要到每个指定的门店,进行打卡签到,集齐打卡徽章,达到对应的数量,就可以领取奖品,兑换奖品。

    还有一些线上打卡活动,比如通过每日至少一次发表绿色生活实践照片或视频的方式打卡,宣传绿色生活,增加参与感。活动有效时长连续七天,打卡内容展示“帮助环卫工人”“做环保公益活动”“送废纸废塑料去回收”等,旨在号召人们积极参与绿色生活实践。每日坚持打卡会有香囊、水杯、充电宝等奖品,以此鼓励环保打卡行为。

    很多单位都喜欢使用这种的打卡活动来举办各种不同形式的线下互动活动。比如下面的:

    厦门市总工会于5月1日至15日期间举办厦门市职工“绿色行”打卡活动,持有工会会员卡的职工任意前往5个首批厦门市职工“绿色行”打卡点拍摄照片即可参与活动,前200位经审核合格的参与对象将获得由厦门市总工会提供的礼品。

    本次活动要求参与者上传5张在不同打卡点拍摄的照片,照片内容须包含打卡点明显标志且有参与者本人出现,每张照片大小在1M以内,像素清晰。照片上传数量不足、参与者与工会系统用户不一致、盗图都将被取消参与活动资格。经审核合格的参与对象将接到短信通知,5月20日后可登录厦门市总工会官网公告栏查看获奖人员名单。据介绍,活动通过打卡“绿色行”打卡点,让职工切身体会厦门的山海风貌和经济特区建设丰硕成果,以调动职工工作生活积极性,增强工会组织凝聚力和向心力。

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    展开全文
  • 三、附加功能 三款软件除了都有拍照、从照片库挑选照片的功能,还带有一些附加功能,小编经常会在里面翻翻,一来打发时间,二来有一定的娱乐性。像形色和花伴侣带有景点、鉴定、文章的功能。 「景点」功能可以为你...
  • 对于电商中的分销机制,是需要用户上传身份证或者银行卡的,由于身份证号码(18位/15位),银行卡(19位/17位/16位),位数较多,在用户输入时,有些繁琐。 以支付宝绑定银行卡为例,可以通过拍照的方式,自动检测...
  • 或者可以在签到墙上进行签到,拍照打卡。 除此之外,我们还可以进行电子签到打卡,电子签到的好处是简化信息登记的手续,便于活动现场的控场、信息传递以及活动后的客户跟进、调查反馈。AR签到、刷脸签到等则是在...
  • PDF文件在生活中很常见的格式,现在很多文件都是以PDF形式保存,比如说扫描件,...这类文字识别软件可以帮助我们一键识别文件,省去了手动输入文字的烦恼,下面教大家PDF文字识别的方法。 识别PDF文件推荐使用得力...
  • 拍照搜题

    千次阅读 2015-09-17 17:28:03
     从技术上来说,这类软件主要有两种方案:“以图搜图”和“OCR+文字搜索” ①以图搜图的方法就是把用户拍摄的图片和已有的图片题库做匹配。这和我们平常通过上传图片的方式...用户在拍照后,软件首选需要把其中
  • 最近遇到一个项目需求,需要进行拍照,并且识别图片中的文字。拿到这个需求的的时候,自己有点懵,因为对这一块目前了解还太少。不过想着之前自己做过的一些项目和老师说过:我们现在很多时候都是面向service编程。...
  • 安卓开发:使用手机拍照功能

    千次阅读 2017-07-01 21:14:35
    概述 在安卓开发过程中,使用手机拍照功能的核心...要是软件开发真的这么简单就好了,而且核心代码也仅仅只是核心代码而已。为了完成整个过程:调用手机摄像头、拍照、剪切照片、获取照片、处理照片,还是需要围绕核心
  • 有时将一些书本上的内容拍照或是扫描后都会形成一个图片,但是上面的文字不好直接使用,需要手动输入,那有什么方法可以快速的将图片上的文章内容提取出来吗? 方法:  要快速识别图片上的文字...
  • 有时看到一个视频,或者软件上的文字很好看,可又不知道是什么字体,想下载也...上传文字图片这里使用“叶红笔记”来做识别,如下图。这里说明下几个按钮的作用。字体图片反相:如果你是黑底白字的图片,可以使...
  • 本文实例为大家分享了微信小程序使用前置摄像头拍照的具体代码,供大家参考,具体内容如下 1、拍照页面: 拍照> <camera v-if=openCamera device-position=front frame-size=large class=zipai error=error> ...
  • 如何实现一个拍照搜题功能

    千次阅读 2019-10-25 10:23:24
    如何实现一个拍照搜题功能 主要分4步数据抓取,数据处理 ,图文转换,搜索引擎 1.数据抓取 主要抓取网页网站题库数据 可抓取题库网,无忧网,新东方题库 技术实现: 利用jsoup抓取相应网站的数据,利用htmlunit模拟...
  • 图片上传测试用例

    千次阅读 2020-04-29 15:36:23
    (1)选择符合要求的图片,上传--------上传成功; (2)上传成功的图片名称显示----------显示正常(根据需求) (3)查看,下载上传成功的图片--------上传的图片可查看或下载(根据需求) (4)删除上传成功的...
  • 富头像上传编辑器 v1.4,可以支持asp,.net,php,jsp等,富头像上传编辑器是一款支持本地上传、预览、视频拍照和网络加载的flash头像编辑上传插件,可缩放、裁剪、旋转、定位和调色等... 小巧的身材:文件大小仅仅...
  • 富头像上传编辑器最新官方版,可以支持asp,.net,php,jsp等,富头像上传编辑器是一款支持本地上传、预览、视频拍照和网络加载的flash头像编辑上传插件,可缩放、裁剪、旋转、定位和调色等... 小巧的身材:文件大小...
  • 步骤一:打开清描图片转文字,在主界面选择识别功能——手写体识别,进入到拍照页面后,对着要识别的笔记进行拍照。 步骤二:进入到接下来在识别范围页面,确认识别区域,点击文字识别按钮进入到识别结果页面,...
  • 或者可以在签到墙上进行签到,拍照打卡。 除此之外,我们还可以进行电子签到打卡,电子签到的好处是简化信息登记的手续,便于活动现场的控场、信息传递以及活动后的客户跟进、调查反馈。AR签到、刷脸签到等则是在...
  • 原标题:如何利用OCR文字识别软件快速录入信息到电脑上?如何利用OCR文字识别软件快速录入信息到电脑上?作为一名文员,一般需要从事文件处理工作,经常会遇到需要将手上的稿件资料录入到电脑上的工作。如果采取手工...
  • 筑筑工程进度管理软件是...9、一线线场:按项目进行拍照并可以批量上传。 10、任务管理:可以下达或参考相关工作任务 11、BI分析:提供企业合同、收款、付款、进度等各角度的BI数据分析。 筑筑工程进度管理软件截图
  • oss上传图片

    2018-05-22 17:29:53
    在开发APP软件中,boss突然提出想在软件中添加一个多张照片上传的功能,作为菜鸟的我,琢磨了两天,才弄出来,今天特地贴出来。本篇博客主要介绍的是将本地图片上传到服务器的方法技巧。主要技术点是: 一、运用第...
  • 在经历P9、Mate 9和P10几代产品之后,华为在拍照方面的实力也逐渐被大众熟知和认可,口碑效应逐渐产生。  专业拍照评分机构DxOMark为华为Mate 10 Pro打下了这样的评语:“华为Mate 10 Pro是摄影爱好者首选的卓越...
  • 不是说这样的方式不好,只是在OCR文字识别软件已经非常普遍的情况下,手动打字真的太费时费力了,尤其是当需要提取的文字过多时,一天可能也打不完。而使用文字提取图片的软件,可以帮助我们快速的将文字提取出来。 ...
  • 什么软件可以提取图片中的文字?工作和学习中,我们经常会因为需要某一些类型的资料而全网找素材。但是很多平台的文档不可下载,选中文档进行复制时,也会提示禁止转载。遇到这些情况时,小伙伴们是怎么解决的呢?是...
  • 1.访问远程电脑桌面:同步查看远程电脑的屏幕,能使用本地鼠标键盘如操作本机一样操作远程电脑,支持文件上传下载、对屏幕进行拍照和录像,可用于远程电脑维护、远程技术支持等。 2.远程开启电脑摄像头:可远程开启...
  • 软件测试功能分析

    2020-01-07 13:29:26
    软件测试功能分析 个人头像功能测试点...拍照上传: 显性:正常拍照 隐性:摄像头权限/是否能重新拍摄/闪光灯开启/摄像头前后切换 图片不能超过10M: 显性:小于或等于10M/超过10M 隐性:网络切换时上传(W...
  • 我们顺应市场需求,推出发票拍照识别系统来解放您的双手,采用OCR(光学字符识别)发票扫描识别技术,自动采集发票上的会计要素,自动对票据建立索引并归档,提高凭证信息查阅的一致性与准确性,与传统的会...
  • 网络人远程电脑监控软件是一款专业的远程控制软件和局域网监控软件软件泛用于远程办公、远程协助、远程监控领域,使用UDP协议,无须映射便可穿透内网,同步监控QQ、MSN聊天记录及电子邮件内容。还具有屏幕监控,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,626
精华内容 1,050
关键字:

拍照上传文字的软件