文章目录

  • 一、像素密度对解码图片的影响
  • 二、不考虑像素密度会导致图片缩小尺寸不准确
  • 三、DisplayMetrics 源码阅读、研究手机资源获取规则
  • 四、像素密度参数设置取值 ( inDensity | inTargetDensity | setDensity )
  • 五、inDensity 与 inTargetDensity 设置
  • 六、新的图片缩小工具类代码 ( 在原基础上添加了像素密度控制 )
  • 七、GitHub 地址





一、像素密度对解码图片的影响



在之前讲内存占用的博客中 【Android 内存优化】Bitmap 内存占用计算 ( Bitmap 图片内存占用分析 | Bitmap 内存占用计算 | Bitmap 不同像素密度间的转换 ) , 讲到从不同的像素密度资源中获取图片 , 其解码后的大小不同 ;


在上述博客最后从不同像素密度 , 加载 1990 x 1020 大小的图片 , 解码出来分别是如下结果 :

  • hdpi : 宽 3483 , 高 1785 , 占用内存 24868620 字节 ;
  • mdpi : 宽 5224 , 高 2678 , 占用内存 55959488 字节 ; 从 drawable 默认目录中读取也是这个配置 ;
  • xhdpi : 宽 2612 , 高 1339 , 占用内存 13989872 字节 ;
  • xxhdpi : 宽 1741 , 高 893 , 占用内存 6218852 字节 ;
  • xxxhdpi : 宽 1306 , 高 669 , 占用内存 3494856 字节 ;

详细的计算过程查看上述博客 , 这里不再详述 ;


Bitmap 解码尺寸计算公式如下 :

=×加载到内存中的宽或高像素值 = 实际宽或高像素值 \times \dfrac{本机像素密度}{图片存放的目录对应的像素密度}





二、不考虑像素密度会导致图片缩小尺寸不准确



目前 R.drawable.blog 图片在 drawable 目录中存放 , 其代表的像素密度前缀是 mdpi ;

从该 drawable 目录中读取的资源 densityDpi 值为 DENSITY_MEDIUM = 160, 当前的 Pixel 2 手机屏幕密度 density = 2.625 , 屏幕像素密度 densityDpi = 420 ;

在博客 【Android 内存优化】Bitmap 图像尺寸缩小 ( 设置 Options 参数 | inJustDecodeBounds | inSampleSize | 工具类实现 ) 中出现如下问题 :

明明在代码中设置了宽高最大值时 100 x 100 , 解码出来的图片居然是 , 程序解析错了 ?

        Bitmap reduceSizeBitmap = BitmapSizeReduce.getResizedBitmap(this, R.drawable.blog,100, 100 , false , null);

解码结果 : 解码出来的宽度 163 像素 , 高度 81 像素 , 明显出现问题了 ;

2020-06-30 22:04:22.959 3766-3766/? I/Bitmap: blog : 5224 , 2678 , 55959488
2020-06-30 22:04:22.960 3766-3766/? W/BitmapSizeReduce: getResizedBitmap inSampleSize=32
2020-06-30 22:04:22.980 3766-3766/? I/Bitmap: reduceSizeBitmap : 163 , 81 , 26406

原因说明 :

在设置了 options.inJustDecodeBounds = true 选项后 , 使用 BitmapFactory.decodeResource(resources, iamgeResId, options) 解码出的图片参数 , 是图片的实际参数 , 即 1990 x 1020 , 此时按照该实际参数进行了图片解码 , 计算图片缩小值 inSampleSize = 32 , 此时是可以将图片宽高都缩小到 100 的 , 缩小后的图片宽高是 62 x 32 ;


如果从真实的图像解码 , 会将像素密度解码考虑进去 , 这里从 mdpi 资源中解码图片 , 实际的解码出来的大小是 5224 x 2678 , 如果将该值缩小 32 倍 , 肯定无法到达宽高都小于 100 像素 , 这里得到的图片大小事 163 x 81 ;





三、DisplayMetrics 源码阅读、研究手机资源获取规则



仔细阅读 DisplayMetrics 中的代码 , 可以看到不同像素密度的手机的资源来源 , 基本上是获取其向上取整屏幕密度的资源 , 如果当前手机 densityDpi = 420 , 其处于 DENSITY_XHIGH 与 DENSITY_XXHIGH 之间 , 那么就会优先读取 DENSITY_XXHIGH 对应 xxhdpi 中的资源 , 这也是为了保证图片清晰度设定的策略 ;


规则 : 当手机的屏幕像素密度处于两个标准量化值之间 , 那么会自动选取高的标准量化值对应的资源缩小后使用 ;


public class DisplayMetrics {// 低密度屏幕标准量化值 , 对应 ldpi , 现在基本不使用public static final int DENSITY_LOW = 120;// DENSITY_LOW 与 DENSITY_MEDIUM 之间的密度  // 应用程序中不用考虑为这些像素密度准备资源  // 该密度的手机由系统自动缩放 DENSITY_MEDIUM 对应的资源使用public static final int DENSITY_140 = 140;// 中等密度屏幕标准量化值 , 对应 mdpi public static final int DENSITY_MEDIUM = 160;	// DENSITY_MEDIUM 与 DENSITY_HIGH 之间的密度  // 应用程序中不用考虑为这些像素密度准备资源   // 该密度的手机由系统自动缩放 DENSITY_HIGH 对应的资源使用public static final int DENSITY_180 = 180;		public static final int DENSITY_200 = 200;public static final int DENSITY_TV = 213;public static final int DENSITY_220 = 220;// 高密度屏幕标准量化值 , 对应 hdpi public static final int DENSITY_HIGH = 240;// DENSITY_HIGH 与 DENSITY_XHIGH 之间的密度 // 应用程序中不用考虑为这些像素密度准备资源  // 该密度的手机由系统自动缩放 DENSITY_XHIGH  对应的资源使用public static final int DENSITY_260 = 260;public static final int DENSITY_280 = 280;public static final int DENSITY_300 = 300;// 超高密度屏幕标准量化值 , 对应 xhdpi public static final int DENSITY_XHIGH = 320;// DENSITY_XHIGH 与 DENSITY_XXHIGH 之间的密度 // 应用程序中不用考虑为这些像素密度准备资源  // 该密度的手机由系统自动缩放 DENSITY_XXHIGH 对应的资源使用public static final int DENSITY_340 = 340;public static final int DENSITY_360 = 360;public static final int DENSITY_400 = 400;public static final int DENSITY_420 = 420;public static final int DENSITY_440 = 440;public static final int DENSITY_450 = 450;// 超超高密度屏幕标准量化值 , 对应 xxhdpi public static final int DENSITY_XXHIGH = 480;// DENSITY_XXHIGH 与 DENSITY_XXXHIGH 之间的密度 // 应用程序中不用考虑为这些像素密度准备资源  // 该密度的手机由系统自动缩放 DENSITY_XXXHIGH 对应的资源使用public static final int DENSITY_560 = 560;public static final int DENSITY_600 = 600;// 超超超高密度屏幕标准量化值 , 对应 xxxhdpi public static final int DENSITY_XXXHIGH = 640;public static final int DENSITY_DEFAULT = DENSITY_MEDIUM;public static final float DENSITY_DEFAULT_SCALE = 1.0f / DENSITY_DEFAULT;public static int DENSITY_DEVICE = getDeviceDensity();public static final int DENSITY_DEVICE_STABLE = getDeviceDensity();// 省略一万行代码 ... 
}




四、像素密度参数设置取值 ( inDensity | inTargetDensity | setDensity )



在 Bitmap 操作过程中 , 需要设置一系列与像素密度相关的取值 , 如 inDensity , inTargetDensity , setDensity 等值 ;

这些值设置的是 densityDpi 值 , 定义在 DisplayMetrics 中 ;

就是上述的 DENSITY_LOW 到 DENSITY_XXXHIGH 之间的一系列常量值 , 取值范围 120 ~ 640 ;





五、inDensity 与 inTargetDensity 设置



这两个值都是 BitmapFactory.Options 中设置的值 ;


① inDensity 像素密度值 : 设置该值会导致被返回的图像会被强制设置一个像素密度值 , 相当于设置了图片来自于哪个像素密度的资源 ;

② inTargetDensity 目标像素密度值 : 表示要缩放到的目标图像像素密度值 , 该值需要结合 inScaled 值使用 , 如果同时设置了 inScaled = true , 和 inDensity 像素密度值 , 在图像返回时 , 会自动将图像按照 inDensity 向 inTargetDensity 缩放 ;

        // 设置图片的来源方向的像素密度 , 如设置 options.inDensity = decodeDensityDpi;// 设置图片的目标方向的像素密度options.inTargetDensity = decodeDensityDpi;// 设置图片解码可缩放 , 该配置与上述两个配置结合使用options.inScaled = true;




六、新的图片缩小工具类代码 ( 在原基础上添加了像素密度控制 )



package kim.hsl.bm.utils;import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;/*** Bitmap 尺寸缩小*/
public class BitmapSizeReduce {private static final String TAG = "BitmapSizeReduce";/*** 获取指定尺寸于鏊求的 Bitmap 对象* 该方法有缺陷 , 计算值的时候没有考虑像素密度* 如果从不同像素密度的资源文件中加载* 可能计算出的值与指定的 maxBitmapWidth maxBitmapHeight 略有出入** @param context           上下文对象* @param iamgeResId        要解析的图片资源 id* @param maxBitmapWidth    Bitmap 的最大宽度* @param maxBitmapHeight   Bitmap 的最大高度* @param hasAlphaChannel   是否包含 ALPHA 通道, 即透明度信息* @param inBitmap          复用的 Bitmap, 将新的 Bitmap 对象解析到该 Bitmap 内存中* @return  返回新的 Bitmap 对象*/public static Bitmap getResizedBitmap(Context context,int iamgeResId, int maxBitmapWidth, int maxBitmapHeight,boolean hasAlphaChannel, Bitmap inBitmap){// 0. 声明方法中使用的局部变量// 用于解析资源Resources resources = context.getResources();// 为图像指定解码的 像素密度int decodeDensityDpi = resources.getDisplayMetrics().densityDpi;// Bitmap 图片加载选项BitmapFactory.Options options = new BitmapFactory.Options();// 图片宽度int imageWidth;// 图片高度int imageHeight;/*根据 图片宽度 imageWidth , 图片高度 imageHeight ,最大宽度 maxBitmapWidth , 最大高度 maxBitmapHeight ,计算出的图片缩放系数 , 该值最终要设置到 BitmapFactory.Options 对象中*/int inSampleSize = 1;// 1. 解析图片参数 : 该阶段不解析所有的数据 , 否则会将实际的图片数据解析到内存中 , 这里只解析图片的宽高信息/*设置 inJustDecodeBounds 为 true , 解析器会返回 null但是 outXxx 字段会被设置对应的图片属性值 ,如 : outWidth 输出图像的 宽度 , outHeight 输出高度 , outMimeType 输出类型 ,outConfig 像素格式 , outColorSpace 输出颜色空间*/options.inJustDecodeBounds = true;// 设置图片的来源方向的像素密度 , 如设置options.inDensity = decodeDensityDpi;// 设置图片的目标方向的像素密度options.inTargetDensity = decodeDensityDpi;// 设置图片解码可缩放 , 该配置与上述两个配置结合使用options.inScaled = true;/*由于设置了 inJustDecodeBounds = true , 该方法返回值为空 ;但是传入的 BitmapFactory.Options 对象中的 outXxx 字段都会被赋值 ;如 outWidth , outHeight , outConfig , outColorSpace 等 ;可以获取该图片的宽高 , 像素格式 , 颜色空间等信息*/BitmapFactory.decodeResource(resources, iamgeResId, options);// 获取 iamgeResId 图片资源对应的图片宽度imageWidth = options.outWidth;// 获取 iamgeResId 图片资源对应的图片高度imageHeight = options.outHeight;// 打印解码后的宽高值Log.w(TAG, "getResizedBitmap options.outWidth=" + options.outWidth +" , options.outHeight=" + options.outHeight);// 2. 计算图片缩小比例/*计算缩小的比例宽度和高度只要存在一个大于限定的最大值时 , 就进行缩小操作要求指定的图片必须能放到 maxBitmapWidth 宽度 , maxBitmapHeight 高度的矩形框中最终要求就是 宽度必须小于 maxBitmapWidth, 同时高度也要小于 maxBitmapHeight*/if(imageWidth > maxBitmapWidth || imageHeight > maxBitmapHeight){// 如果需要启动缩小功能 , 那么进入如下循环 , 试探最小的缩放比例是多少while ( imageWidth / inSampleSize > maxBitmapWidth ||imageHeight / inSampleSize > maxBitmapHeight ){// 注意该值必须是 2 的幂次方值 , 1 , 2 , 4 , 8 , 16 , 32 , 64inSampleSize = inSampleSize * 2;}// 执行到此处 , 说明已经找到了最小的缩放比例 , 打印下最小比例Log.w(TAG, "getResizedBitmap inSampleSize=" + inSampleSize);}// 3. 设置图像解码参数/*inSampleSize 设置大于 1 : 如果值大于 1 , 那么就会缩小图片 ;解码器操作 : 此时解码器对原始的图片数据进行子采样 , 返回较小的 Bitmap 对象 ;样本个数 : 样本的大小是在两个维度计算的像素个数 , 每个像素对应一个解码后的图片中的单独的像素点 ;样本个数计算示例 :如果 inSampleSize 值为 2 , 那么宽度的像素个数会缩小 2 倍 , 高度也会缩小两倍 ;整体像素个数缩小 4 倍 , 内存也缩小了 4 倍 ;小于 1 取值 : 如果取值小于 1 , 那么就会被当做 1 , 1 相当于 2 的 0 次方 ;取值要求 : 该值必须是 2 的幂次方值 , 2 的次方值 , 如 1 , 2 , 4 , 8 , 16 , 32如果出现了不合法的值 , 就会就近四舍五入到最近的 2 的幂次方值*/options.inSampleSize = inSampleSize;// 用户设置的是否保留透明度选项 , 如果不保留透明度选项 , 设置像素格式为 RGB_565// 每个像素占 2 字节内存if (!hasAlphaChannel){/*指定配置解码 : 如果配置为非空 , 解码器会将 Bitmap 的像素解码成该指定的非空像素格式 ;自动匹配配置解码 : 如果该配置为空 , 或者像素配置无法满足 , 解码器会尝试根据系统的屏幕深度 ,源图像的特点 , 选择合适的像素格式 ;如果源图像有透明度通道 , 那么自动匹配的默认配置也有对应通道 ;默认配置 : 默认使用 ARGB_8888 进行解码*/options.inPreferredConfig = Bitmap.Config.RGB_565;}/*注意解码真实图像的时候 , 要将 inJustDecodeBounds 设置为 false否则将不会解码 Bitmap 数据 , 只会将outWidth , outHeight , outConfig , outColorSpace 等 outXxx 图片参数解码出来*/options.inJustDecodeBounds = false;/*设置图片可以被复用*/options.inMutable = true;/*如果设置了一个 Bitmap 对象给 inBitmap 参数解码方法会获取该 Bitmap 对象 , 当加载图片内容时 , 会尝试复用该 Bitmap 对象的内存如果解码方法无法复用该 Bitmap 对象 , 解码方法可能会抛出 IllegalArgumentException 异常 ;当前的实现是很有必要的 , 被复用的图片必须是可变的 , 解码后的 Bitmap 对象也是可变的 ,即使当解码一个资源图片时 , 经常会得到一个不可变的 Bitmap 对象 ;确保是否解码成功 :该解码方法返回的 Bitmap 对象是可以使用的 ,鉴于上述约束情况 和 可能发生的失败故障 , 不能假定该图片解码操作是成功的 ;检查解码返回的 Bitmap 对象是否与设置给 Options 对象的 inBitmap 相匹配 ,来判断该 inBitmap 是否被复用 ;不管有没有复用成功 , 你应该使用解码函数返回的 Bitmap 对象 , 保证程序的正常运行 ;与 BitmapFactory 配合使用 :在 KITKAT 以后的代码中 , 只要被解码生成的 Bitmap 对象的字节大小 ( 缩放后的 )小于等于 inBitmap 的字节大小 , 就可以复用成功 ;在 KITKAT 之前的代码中 , 被解码的图像必须是JPEG 或 PNG 格式 ,并且 图像大小必须是相等的 ,inssampleSize 设置为 1 ,才能复用成功 ;另外被复用的图像的 像素格式 Config ( 如 RGB_565 ) 会覆盖设置的 inPreferredConfig 参数*/options.inBitmap = inBitmap;// 4. 解码图片 , 并返回被解码的图片return BitmapFactory.decodeResource(resources, iamgeResId, options);}}

执行结果 :

2020-07-01 11:17:31.389 12350-12350/kim.hsl.bm I/Bitmap: blog : 5224 , 2678 , 55959488
2020-07-01 11:17:31.390 12350-12350/kim.hsl.bm W/BitmapSizeReduce: getResizedBitmap options.outWidth=1990 , options.outHeight=1020
2020-07-01 11:17:31.390 12350-12350/kim.hsl.bm W/BitmapSizeReduce: getResizedBitmap inSampleSize=32
2020-07-01 11:17:31.413 12350-12350/kim.hsl.bm I/Bitmap: reduceSizeBitmap : 62 , 31 , 3844

顺利将图片的宽高都缩小为 100 像素以下 ;





七、GitHub 地址



BitmapMemory

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 数据重删和数据压缩主流技术分析

    数据压缩随着计算能力的不断提升,当代社会正在产生越来越巨量的数据,数据压缩也被应用在生活的方方面面,如在网上打开的图片、视频、音频等都是经过压缩的。压缩可以分为无损压缩和有损压缩。无损压缩可以通过压缩文件完全恢复原始文件;而有损压缩则会丢失一部分信息。对于…...

    2024/4/16 17:43:14
  2. CREDO:Efficient and Privacy-preserving Multi-level Medical Pre-Diagnosis Based on ML-KNN读书笔记(二)

    建议先看CREDO:Efficient and Privacy-preserving Multi-level Medical Pre-Diagnosis Based on ML-KNN读书笔记(一)https://blog.csdn.net/qq_42145187/article/details/106999076Zhu D, Zhu H, Liu X, et al. CREDO: Efficient and privacy-preserving multi-level medical…...

    2024/4/18 4:01:57
  3. latex在线编辑公式(可快速查看latex码)

    在发表论文时,常常会用到latex进行排版,但是会遇到mathtype转换为latex的问题,这里提供了一个latex在线编辑公式的网址,效果如下: http://latex.codecogs.com/eqneditor/editor.php...

    2024/4/18 14:49:19
  4. Unity性能优化之 Profiler

    Profiler主界面 打开方法为上方工具条 Windows-Analysis-Profiler(我也正在学习此功能使用,如有那部分错了还请指出QVQ)左上角可以勾选我们要查看的部分 这里以内存和CPU做演示,选中左边的Memory后下方的内容框就会变化如图 unity会在运行时自动获取每一帧的内存占用数据项…...

    2024/4/16 17:43:08
  5. C++排雷:16. #pragma warning的几种用法

    #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。 #pragma warning(push)是保存当前的编译器警告状态;#pragma warning(push, n) 存储当前报警设置,并设置报警级别为n。n为从1到…...

    2024/4/16 17:43:14
  6. 人脸活体离线识别摇头点头张嘴眨眼动作活体算法源码解析

    活体识别要求最近我们公司的项目需要做一个活体识别的功能,要求如下: 1.离线识别,本地识别活体,这样速度快1s内完成。需要识别出人脸,并判断是否在摇头 ,点头,张嘴,眨眼等动作,进而判断是否活体,准确率要求90%即可,可以去破解相信没有任何一个项目能完全规避的,哪怕…...

    2024/4/16 17:41:56
  7. 工科中的设计思维

    超星学习通app工科中的设计思维网课答案,工科中的设计思维尔章节测验网课答案1.1 走近设计思维1【单选题】本门课程讲述的主要内容不包括()。A、设计思维这一学习形式和思维方式B、一系列有用的创新工具和创造技法C、工科学生需要用到的专业设计软件D、系统化的设计流程和与众…...

    2024/4/18 9:15:04
  8. 研发安全环境解决方案(三):把证书管理改到Linux下

    一.修改安装源并安装easy-rsa mkdir /etc/yum.repos.d/backup; mv /etc/yum.repos.d/*.* /etc/yum.repos.d/backup/ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com…...

    2024/4/20 13:28:38
  9. Unity的学习(二):打砖块

    一、新建项目创建成功后,进入了如下界面。二、场景的设计 在Hierarchy中鼠标右键创建Plane(地面)游戏物体,将其Transform组件重置,并将游戏物体重命名为Ground,如下图所示。调整地面的大小。在Assets下创建文件夹Materials,并在其中创建Ground的Material(材质)并在Gro…...

    2024/4/20 7:59:57
  10. 实战系列-Spring Cloud微服务中三把利器Feign、Hystrix、Ribbon

    导语在之前的分享中分享过关于Fegin的底层实现原理,以及Spring Cloud OpenFegin的启动原理。在这次的分享中主要总结一下Spring Cloud 微服务架构的三把利器。对于Fegin、Hystrix、Ribbon三个组件来说它们之间是什么样的关系。怎么样综合使用等这些问题就是这次分享的内容文章…...

    2024/4/16 17:43:08
  11. 单例和枚举原理

    单例和枚举原理 枚举 简单介绍枚举类能够统一管理一些全局的变量,封装对于他们的逻辑与方法。还能和switch-case结合,简化大量的if-else,让代码更加优雅。直接Demo public enum Week {//本文的枚举类变量,枚举类实例,name属性指的就是MONDAY//这类的变量MONDAY(0,"星…...

    2024/4/16 17:42:20
  12. 仿element自定义进度条

    由于element官网进度条是按百分比显示的 可选值只有0-100;如果是一个量值的显示,如图这样的用element进度条实现起来就比较麻烦,所以就有了下边的自定义进度条 github: https://github.com/Hans-326/ProgressBar...

    2024/3/28 19:44:05
  13. 【考试记录】Apsara Clouder基础技能认证:实现调用API接口

    从今天开始,准备把阿里的认证尽可能多的考出来。原因有这么几个:研究生要毕业了,除了把论文写好,还有找工作的压力,所以想尽可能多的考出几个证来证明自己的学习能力;研究生毕业后想找个教师的工作,所以得以身作则,多学习知识,这样教学生才能有底气。知道自己现在能力…...

    2024/4/16 17:43:02
  14. 浅析原型模式中的clone()

    更多精彩文章请访问我的个人博客(zhuoerhuobi.cn)最近学习到设计模式中的原型模式,在学习过程中,产生了对clone()实现的原理和效率的兴趣。原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的…...

    2024/4/16 17:44:26
  15. layui的时间控件laydate实现不用点击确定按钮

    laydate.render({elem: #start, //指定元素type:month, //插件只选择年月showBottom :false, //关闭底部框 去掉取消、确定、清空按钮change: function(value, date, endDate){$("#start").val(value);if($(".layui-laydate").length){$(".layu…...

    2024/3/28 19:44:00
  16. Linux iptables用法与NAT

    1.相关概念2.iptables相关用法3.NAT(DNAT与SNAT)相关概念防火墙除了软件及硬件的分类,也可对数据封包的取得方式来分类,可分为代理服务器(Proxy)及封包过滤机制(IP Filter)。代理服务是一种网络服务,通常就架设在路由上面,可完整的掌控局域网的对外连接。IP Filter这…...

    2024/4/17 8:32:29
  17. 学术论文写作

    Sci > EI > 核心 国内期刊有审稿费,国外不需要 IEEE 美国 IET英国 Trans一般10来页...

    2024/4/18 8:17:43
  18. Java NIO Selector

    Java NIO Selector是一个组件,可以检查一个或多个Java NIO Channel实例,并确定那些通道可供使用,read或write。这样,单个线程可以管理多个Channel,从而可以管理多个网络连接。1.为什么要使用Selector?仅使用单个线程来处理多个Channel的优点是:只需要更少的线程来处理Ch…...

    2024/3/31 23:30:49
  19. 新手——教你一步步搭建selenium框架

    新手——教你一步步搭建selenium框架 一.准备工作 1.安装python 去官网 https://www.python.org/下载,安装任意版本的python,接下来去我的电脑-属性-高级设置去配置一下python的环境变量,找到环境变量设置path路径,如图1设置,大家可以根据自己python的安装路径配置环境变量…...

    2024/4/16 17:44:32
  20. QtAV视频播放器的介绍、编译以及简单使用

    背景 简介 QtAV是基于Qt和FFmpeg的多媒体播放库。它可以帮助您以前所未有的精力编写播放器。 强大的功能 QtAV可以满足您的最大需求硬件解码支持:DXVA2,VAAPI,VDA / VideoToolbox,CedarX,CUDA(第一个播放器在Linux上支持CUDA吗?) OpenGL和ES2支持几乎所有格式,包括Hi1…...

    2024/4/16 17:44:20

最新文章

  1. Echarts异步数据与动画加载

    目录 简介 头部代码 这段代码是使用 Echarts 绘制图表的关键部分。首先,初始化了一个 Echarts 实例。然后,通过 Ajax 请求获取数据,并基于此设置图表选项。其中包括颜色、背景色、标题、提示框、图例以及饼图的具体配置。 具体解释如下&a…...

    2024/4/25 0:51:52
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Nginx配置文件修改结合内网穿透实现公网访问多个本地web站点

    文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…...

    2024/4/22 22:16:59
  4. 爱自然生命力粤东中心家风家教高端研讨会在广东汕头盛大开启

    2024年3月30日,爱自然生命力粤东中心家风家教高端研讨会在广东汕头金海湾大酒店隆重召开。 (图为活动现场) 本次由爱自然生命力体系粤东中心主办的粤东家风家教高端研讨会,主题为“携手校家社,共筑新格局”&#xff0…...

    2024/4/22 1:29:52
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/23 20:58:27
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/23 13:30:22
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/23 13:28:06
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/24 18:16:28
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/23 13:27:44
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/19 11:57:53
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/23 13:29:53
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/23 13:27:22
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/23 13:28:42
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/23 22:01:21
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/23 13:29:23
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/25 0:00:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/23 13:47:22
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/19 11:59:23
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/19 11:59:44
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/23 13:28:08
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/24 16:38:05
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/23 13:28:14
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/23 13:27:51
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/23 13:27:19
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57