精华内容
下载资源
问答
  • Android 中保存图片代码

    万次阅读 2011-02-10 12:56:00
    Android 中保存图片代码和保存指定View到图片文件的示例代码

    Copy from Camra app:

     

     

     

    使用方法,如保存指定View到图片文件中:

     

    展开全文
  • android11 存储机制变化之保存图片至图库代码案例

    千次阅读 热门讨论 2020-11-09 17:23:00
    1.首先附上一份android 11存储机制...2.参考源码实现的android11中保存图片到图库的代码: public void saveImageToGallery2(Context context){ Long mImageTime = System.currentTimeMillis(); String imageDate

    1.首先附上一份android 11存储机制变动简介官方文档供参考

    https://developer.android.google.cn/preview/privacy/storage#java

    2.参考源码实现的在android11中保存图片到图库的代码:

    public void saveImageToGallery2(Context context){
        Long mImageTime = System.currentTimeMillis();
        String imageDate = new SimpleDateFormat("yyyyMMdd-HHmmss").format(new Date(mImageTime));
        String SCREENSHOT_FILE_NAME_TEMPLATE = "Screenshot_%s.png";//图片名称,以"Screenshot"+时间戳命名
        String mImageFileName = String.format(SCREENSHOT_FILE_NAME_TEMPLATE, imageDate);
    
        Resources res=getResources();
        Bitmap image =BitmapFactory.decodeResource(res, R.drawable.splash_bg);
    
        final ContentValues values = new ContentValues();
        values.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES
                + File.separator + "dh"); //Environment.DIRECTORY_SCREENSHOTS:截图,图库中显示的文件夹名。"dh"
        values.put(MediaStore.MediaColumns.DISPLAY_NAME, mImageFileName);
        values.put(MediaStore.MediaColumns.MIME_TYPE, "image/png");
        values.put(MediaStore.MediaColumns.DATE_ADDED, mImageTime / 1000);
        values.put(MediaStore.MediaColumns.DATE_MODIFIED, mImageTime / 1000);
        values.put(MediaStore.MediaColumns.DATE_EXPIRES, (mImageTime + DateUtils.DAY_IN_MILLIS) / 1000);
        values.put(MediaStore.MediaColumns.IS_PENDING, 1);
    
        ContentResolver resolver = context.getContentResolver();
        final Uri uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
        try {
            // First, write the actual data for our screenshot
            try (OutputStream out = resolver.openOutputStream(uri)) {
                if (!image.compress(Bitmap.CompressFormat.PNG, 100, out)) {
                    throw new IOException("Failed to compress");
                }
            }
            // Everything went well above, publish it!
            values.clear();
            values.put(MediaStore.MediaColumns.IS_PENDING, 0);
            values.putNull(MediaStore.MediaColumns.DATE_EXPIRES);
            resolver.update(uri, values, null, null);
        }catch (IOException e){
            resolver.delete(uri, null);
            Log.d("Exception",e.toString());
        }
    }
    

     

     

    展开全文
  • 最近研究了一下前端图片和文字选中和拖拽以及保存的技巧:1、禁止鼠标右键保存图片;">2、禁止鼠标拖动图片;">3、文字

    最近研究了一下前端图片和文字选中和拖拽以及保存的技巧:

    1、禁止鼠标右键保存图片

    <img src="logo.png" width="150" height="150" oncontextmenu="return false;">

    2、禁止鼠标拖动图片

    <img src="logo.png" width="150" height="150" ondragstart="return false;">

    3、文字禁止鼠标选中

    <p onselectstart="return false;">文字禁止鼠标选中</p>
    <p>普通文字可以选中</p>

    4、禁止复制文本

    <p onselect="document.selection.empty();">禁止复制文本</p>
    <p>普通文字可以复制</p>

    以上效果用jQuery实现代码:

    <script>
      var imgs=$("img");
      imgs.on("contextmenu",function(){return false;});
      imgs.on("dragstart",function(){return false;});
    </script>  
    展开全文
  • Android实现webview中长按图片弹出菜单保存图片在项目遇到一个保存webview二维码图片的问题,做个笔记。 效果如图: 用到webview的三个方法: getHitTestResult()——Gets a HitTestResult based on the ...

    Android实现在webview中长按图片弹出菜单保存图片

    在项目中遇到一个保存webview中二维码图片的问题,做个笔记。
    效果如图: 这里写图片描述
    用到webview的三个方法:

    • getHitTestResult()——Gets a HitTestResult based on the current cursor node
    • getType()——Gets the type of the hit test result(获取所选中目标的类型,可以是图片,超链接,邮件,电话等等)
    • getExtra()——Gets additional type-dependant information about the result(获取额外的信息,例如图片的地址)

    1. 第一步:给webview添加长按监听

    _mWebview.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    }
                });

    2. 第二步:通过webview的getHitTestResult()方法获取HitTestResult 对象

    (1)通过getType()获取类型,通过类型判断是否是图片

    WebView.HitTestResult result = ((WebView) v).getHitTestResult();
    int type = result.getType();

    type有这几种类型

    WebView.HitTestResult.UNKNOWN_TYPE    未知类型
    WebView.HitTestResult.PHONE_TYPE    电话类型
    WebView.HitTestResult.EMAIL_TYPE    电子邮件类型
    WebView.HitTestResult.GEO_TYPE    地图类型
    WebView.HitTestResult.SRC_ANCHOR_TYPE    超链接类型
    WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE    带有链接的图片类型
    WebView.HitTestResult.IMAGE_TYPE    单纯的图片类型
    WebView.HitTestResult.EDIT_TEXT_TYPE    选中的文字类型

    (2)通过getExtra()获取额外信息,图片这里就是图片地址

    String imgurl = result.getExtra();

    通过判断类型来做不同的显示效果,在这里我只对图片处理,长按图片弹出一个PopWindow,效果自己写。

    3. 第三步:通过获取的图片地址下载图片

    最后把所有代码整理一下:

    自定义PopWindow——ItemLongClickedPopWindow.java

    public class ItemLongClickedPopWindow extends PopupWindow {
        /**
         * 书签条目弹出菜单 * @value * {@value} *
         */
        public static final int FAVORITES_ITEM_POPUPWINDOW = 0;
        /**
         * 书签页面弹出菜单 * @value * {@value} *
         */
        public static final int FAVORITES_VIEW_POPUPWINDOW = 1;
        /**
         * 历史条目弹出菜单 * @value * {@value} *
         */
        public static final int HISTORY_ITEM_POPUPWINDOW = 3;
        /**
         * 历史页面弹出菜单 * @value * {@value} *
         */
        public static final int HISTORY_VIEW_POPUPWINDOW = 4;
        /**
         * 图片项目弹出菜单 * @value * {@value} *
         */
        public static final int IMAGE_VIEW_POPUPWINDOW = 5;
        /**
         * 超链接项目弹出菜单 * @value * {@value} *
         */
        public static final int ACHOR_VIEW_POPUPWINDOW = 6;
        private LayoutInflater itemLongClickedPopWindowInflater;
        private View itemLongClickedPopWindowView;
        private Context context;
        private int type;
    
        /**
         * 构造函数 * @param context 上下文 * @param width 宽度 * @param height 高度 *
         */
        public ItemLongClickedPopWindow(Context context, int type, int width, int height) {
            super(context);
            this.context = context;
            this.type = type;
            //创建
            this.initTab();
            //设置默认选项
            setWidth(width);
            setHeight(height);
            setContentView(this.itemLongClickedPopWindowView);
            setOutsideTouchable(true);
            setFocusable(true);
        }
    
        //实例化
        private void initTab() {
            this.itemLongClickedPopWindowInflater = LayoutInflater.from(this.context);
            switch (type) {
    //            case FAVORITES_ITEM_POPUPWINDOW:
    //                this.itemLongClickedPopWindowView = this.itemLongClickedPopWindowInflater.inflate(R.layout.list_item_longclicked_favorites, null);
    //                break;
    //            case FAVORITES_VIEW_POPUPWINDOW: //对于书签内容弹出菜单,未作处理
    //                break;
    //            case HISTORY_ITEM_POPUPWINDOW:
    //                this.itemLongClickedPopWindowView = this.itemLongClickedPopWindowInflater.inflate(R.layout.list_item_longclicked_history, null);
    //                break;
    //            case HISTORY_VIEW_POPUPWINDOW: //对于历史内容弹出菜单,未作处理
    //                break;
    //            case ACHOR_VIEW_POPUPWINDOW: //超链接
    //               break;
                case IMAGE_VIEW_POPUPWINDOW: //图片
                    this.itemLongClickedPopWindowView = this.itemLongClickedPopWindowInflater.inflate(R.layout.list_item_longclicked_img, null);
                    break;
            }
        }
    
        public View getView(int id) {
            return this.itemLongClickedPopWindowView.findViewById(id);
        }
    }

    PopWindow的布局文件——list_item_longclicked_img.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="5dp"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/item_longclicked_viewImage"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:gravity="center"
            android:text="查看图片"
            android:textColor="@android:color/white"
            android:textSize="16sp" />
    
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@color/gray_9F" />
    
        <TextView
            android:id="@+id/item_longclicked_saveImage"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:gravity="center"
            android:text="保存图片"
            android:textColor="@android:color/white"
            android:textSize="16sp" />
    
    </LinearLayout>

    通过GestureDetector获取按下的位置,来定位PopWindow显示的位置

    private GestureDetector gestureDetector;
    private int downX, downY;
    
    
        gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
                @Override
                public void onLongPress(MotionEvent e) {
                    downX = (int) e.getX();
                    downY = (int) e.getY();
                }
            });

    在Activity中对webview的监听

    _mWebview.setOnLongClickListener(new View.OnLongClickListener() {
         @Override
         public boolean onLongClick(View v) {
            WebView.HitTestResult result = ((WebView)v).getHitTestResult();
            if (null == result) 
                return false;
            int type = result.getType();
            if (type == WebView.HitTestResult.UNKNOWN_TYPE) 
                return false;
            if (type == WebView.HitTestResult.EDIT_TEXT_TYPE) {
              //let TextViewhandles context menu return true;
             }
    final ItemLongClickedPopWindow itemLongClickedPopWindow = new ItemLongClickedPopWindow(HtmlActivity.this,ItemLongClickedPopWindow.IMAGE_VIEW_POPUPWINDOW, UIUtils.dip2px(120), UIUtils.dip2px(90));
        // Setup custom handlingdepending on the type
       switch (type) {
           case WebView.HitTestResult.PHONE_TYPE: // 处理拨号
               break;
           case WebView.HitTestResult.EMAIL_TYPE: // 处理Email
               break;
           case WebView.HitTestResult.GEO_TYPE: // TODO
               break;
           case WebView.HitTestResult.SRC_ANCHOR_TYPE: // 超链接
               // Log.d(DEG_TAG, "超链接");
               break;
           case WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE:
               break;
           case WebView.HitTestResult.IMAGE_TYPE: // 处理长按图片的菜单项
               imgurl = result.getExtra();
               //通过GestureDetector获取按下的位置,来定位PopWindow显示的位置
               itemLongClickedPopWindow.showAtLocation(v,        Gravity.TOP|Gravity.LEFT, downX, downY + 10);
               break;
           default:
               break;
        }
    
    itemLongClickedPopWindow.getView(R.id.item_longclicked_viewImage)
        .setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   itemLongClickedPopWindow.dismiss();
               }
         });
                                                                              itemLongClickedPopWindow.getView(R.id.item_longclicked_saveImage)
        .setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   itemLongClickedPopWindow.dismiss();
                   new SaveImage().execute(); // Android 4.0以后要使用线程来访问网络
               }
        });
        return true;
      }
    });

    最后下载图片

    private String imgurl = "";
    
        /***
         * 功能:用线程保存图片
         *
         * @author wangyp
         */
        private class SaveImage extends AsyncTask<String, Void, String> {
            @Override
            protected String doInBackground(String... params) {
                String result = "";
                try {
                    String sdcard = Environment.getExternalStorageDirectory().toString();
                    File file = new File(sdcard + "/Download");
                    if (!file.exists()) {
                        file.mkdirs();
                    }
                    int idx = imgurl.lastIndexOf(".");
                    String ext = imgurl.substring(idx);
                    file = new File(sdcard + "/Download/" + new Date().getTime() + ext);
                    InputStream inputStream = null;
                    URL url = new URL(imgurl);
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setConnectTimeout(20000);
                    if (conn.getResponseCode() == 200) {
                        inputStream = conn.getInputStream();
                    }
                    byte[] buffer = new byte[4096];
                    int len = 0;
                    FileOutputStream outStream = new FileOutputStream(file);
                    while ((len = inputStream.read(buffer)) != -1) {
                        outStream.write(buffer, 0, len);
                    }
                    outStream.close();
                    result = "图片已保存至:" + file.getAbsolutePath();
                } catch (Exception e) {
                    result = "保存失败!" + e.getLocalizedMessage();
                }
                return result;
            }
    
            @Override
            protected void onPostExecute(String result) {
                showToast(result);
            }
        }

    原文:http://www.educity.cn/wenda/179077.html

    展开全文
  • UIImagePicker 控制器,点击相机按钮的时候,预览和使用按钮显示,但是图片没有保存在图片相册代码: -(void)viewDidAppear:(BOOL)animated{ picker = [[UIImagePickerController alloc] init]; /...
  • VC++实现二维码(显示+保存图片)功能源代码

    千次阅读 多人点赞 2020-09-27 16:38:26
    1.第一步项目上新建一个筛选器(就是建一个分类目录),如:qrcode 然后项目解决方案上 右键添加现有项, 也就是把源代码加到项目里来,你也可以不建这个,直接添加源代码进来,加这个代码看起来更王整洁而已,...
  • 很多网页的内容包括图片是用JS或Jquery动态加载的,用Webbrowser直接获得的源码是没有参考价值的,而JS加载后含所有element的代码很难获取的,起码笔者搜索了一圈下来看到的方法都几乎没有使用价值。 笔者这里分享一...
  • 【Python】解决使用 plt.savefig 保存图片时一片空白

    万次阅读 多人点赞 2016-10-24 15:52:08
    问题当使用如下代码保存使用plt.savefig 保存生成的图片时,结果打开生成的图片确实一片空白。import matplotlib.pyplot as plt""" 一些画图代码 """plt.show() plt.savefig("filename.png")原因其实产生这个现象的...
  • 最近项目要有代码自动截屏的功能,而且需要截屏之后使用代码剪切一下图片的功能并且上传到服务器端,话不多说先直接上代码,然后再根据代码分析一下呗。private void GetandSaveCurrentImage() { //1.获取屏幕...
  • 刚开始保存图片到本地更新相册后时间显示1970年月1日,网上看了好多方案都不用详细代码:/** * 将URL转化成bitmap形式 * * @param url * @return bitmap type */ public final static Bitmap returnBitMap...
  • Android中保存图片到本地功能实现

    万次阅读 2017-07-24 17:46:35
    本文描述将一个Bitmap对象保存为一个图片文件的主要步骤。保存图片文件能够立刻系统相册和图库找到。 我使用的是一张drawable图片,构造bitmap如下: Bitmap icon = BitmapFactory.decode
  • c++ opencv保存图片

    万次阅读 2019-01-13 19:07:01
    本人做人脸采集的时候遇到了要用c++ opencv保存图片的问题,下面是方法,代码是抠出来的,由于是项目所以全部代码就不放出来了 直接使用c++ opencv的接口函数使用方法。 cv::imwrite(path_filename,picture) ...
  • SQlite数据库可以直接保存图片,有两点说明: 1.建数据库表时,保存图片的表字段类型为BLOB。 2.图片类型为Bitmap 保存到数据库代码如下: final ByteArrayOutputStream os = new ...
  • 前言: 首先我们要知道,如果小程序首次发起授权被拒绝之后,再次点击同一个按钮执行的wx.authorize(...)不会再弹出授权窗口。...第二种:使用button按钮,并写上如下代码,点击此按钮打开设置页面 <button bin...
  • Java代码在Word的指定位置插入一张图片

    万次阅读 热门讨论 2019-08-24 10:02:31
    Java代码在Word的指定位置插入一张图片 继使用java向word插入文字,使用java代码将word转为pdf之后,写一篇使用java代码图片插入到word文档中。 噢~我无所不能的java语言。 我们插入下面这张图片,这是原...
  • 用C++代码将像素矩阵保存图片,这里以读取yuv序列视频帧为例进行分析,假设4:2:0yuv序列有300帧,则首先需要将每一视频帧保存在一个像素矩阵,然后将每一个矩阵保存图片,最终会有300个bmp图片。 纯C++代码...
  • java代码生成图片保存到本地

    千次阅读 2019-02-16 14:41:45
    图片写到实体图片里 try { ImageIO.write(bufferedImage, "jpg", file); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } // 2.将图片写到流里 ...
  • iOS长按保存图片

    千次阅读 2015-02-27 22:24:58
    有的App图片你长按它就会提示你是否保存当前图片,这个效果看起来是不是挺高大上的啊,今天我就来给大家分享这个效果,下面写代码 下面的代码中imageView得首先创建好,就是你想要保存的那种图片,都...
  • 有时候我们的开发需求需要截图,并且保存图片到本地相册,或者是长按图片保存到本地。不多说,用代码说话: 我在代码中的注释写得特别详细,相信你一看就懂! -(void)buttonAction:(UIButton *)btn { //此处我只写...
  • 最近做运动手环项目,有一个功能要实现...保存图片到本地代码我就不写了,关键是保存到本地图片,也要加入系统相册,并且要微信扫一扫立马能找到,所以图片保存以后一定要刷新系统相册,网上有很多参考,给个链接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 540,521
精华内容 216,208
关键字:

如何在代码中保存图片