当前位置: 首页 > news >正文

Android BitmapShader简洁实现马赛克,Kotlin(一)

Android BitmapShader简洁实现马赛克,Kotlin(一)

这一篇,

Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)-CSDN博客

基于PorterDuffXfermode实现马赛克,理解上有一定难度。

这次,基于BitmapShader简洁实现马赛克。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"tools:context=".MainActivity"><com.myapp.MyViewandroid:layout_width="wrap_content"android:layout_height="wrap_content" /></RelativeLayout>

import android.content.Context
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.BitmapShader
import android.graphics.Canvas
import android.graphics.Matrix
import android.graphics.Paint
import android.graphics.Path
import android.graphics.Shader
import android.graphics.drawable.BitmapDrawable
import android.util.AttributeSet
import android.view.MotionEvent
import androidx.appcompat.widget.AppCompatImageViewclass MyView : AppCompatImageView {private var mPaint: Paint = Paint()private var mPath: Path = Path()private var mPreX = 0fprivate var mPreY = 0fprivate var mBitmapShader: BitmapShader? = nullprivate val mResId = R.mipmap.nplprivate var mMosaicScaleFactor = 16f //值越大,马赛克效果越强。private var mSrcBmp: Bitmap? = nullprivate var mSrcBmpW = 0private var mSrcBmpH = 0constructor(ctx: Context, attributeSet: AttributeSet) : super(ctx, attributeSet) {mPaint.style = Paint.Style.STROKEmPaint.strokeWidth = 35fmSrcBmp = BitmapFactory.decodeResource(resources, mResId, null)background = BitmapDrawable(resources, mSrcBmp)mSrcBmpW = mSrcBmp!!.widthmSrcBmpH = mSrcBmp!!.heightval mosaicBmp = getMosaicBmp(mSrcBmp!!)mBitmapShader = BitmapShader(mosaicBmp, Shader.TileMode.CLAMP, Shader.TileMode.REPEAT)mPaint.setShader(mBitmapShader)}override fun onDraw(canvas: Canvas) {super.onDraw(canvas)canvas.drawPath(mPath, mPaint)}override fun onTouchEvent(event: MotionEvent): Boolean {when (event.action) {MotionEvent.ACTION_DOWN -> {mPath.moveTo(event.x, event.y)mPreX = event.xmPreY = event.yreturn true}MotionEvent.ACTION_MOVE -> {val endX = (mPreX + event.x) / 2val endY = (mPreY + event.y) / 2mPath.quadTo(mPreX, mPreY, endX, endY)mPreX = event.xmPreY = event.y}MotionEvent.ACTION_UP -> {}}postInvalidate()return super.onTouchEvent(event)}private fun getSmallBmp(srcBmp: Bitmap): Bitmap {//空Bitmapval dstBmp =Bitmap.createBitmap((mSrcBmpW / mMosaicScaleFactor).toInt(), (mSrcBmpH / mMosaicScaleFactor).toInt(), Bitmap.Config.ARGB_8888)val c = Canvas(dstBmp)val mtx = Matrix()mtx.setScale(1 / mMosaicScaleFactor, 1 / mMosaicScaleFactor)c.drawBitmap(srcBmp, mtx, null)return dstBmp}private fun getMosaicBmp(srcBmp: Bitmap): Bitmap {val smallBmp = getSmallBmp(srcBmp)//空Bitmapval dstBmp = Bitmap.createBitmap(mSrcBmpW, mSrcBmpH, Bitmap.Config.ARGB_8888)val mtx = Matrix()mtx.setScale(mMosaicScaleFactor, mMosaicScaleFactor)val c = Canvas(dstBmp)c.drawBitmap(smallBmp, mtx, null)return dstBmp}
}

当手指在图上划过时,划过的轨迹马赛克:

Android BitmapShader更简易的实现刮刮乐功能,Kotlin_kotlin shaderbrush-CSDN博客文章浏览阅读816次,点赞8次,收藏19次。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。Android Bitmap保存成至手机图片文件,Kotlin_android bitmap保存图片-CSDN博客。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,如果被合并的第二张图片宽度和第一张不同,那么就以第一张图片的宽度为准线,对第二张图片进行缩放。_kotlin shaderbrushhttps://blog.csdn.net/zhangphil/article/details/145143789https://blog.csdn.net/zhangphil/article/details/145143789https://blog.csdn.net/zhangphil/article/details/145143789

Android简洁缩放Matrix实现图像马赛克,Kotlin_kotlin matrix-CSDN博客文章浏览阅读916次,点赞5次,收藏12次。以图形图像界经典的实验例图Lenna为例,当手指在图片上滑过后,形成马赛克的: 写一个MosaicView继承自AppCompatImageView:package com.zhangphil;原理,通过Matrix把一个原图缩小到原先的1/n,然后再把缩小后的小图放大n倍,自然就是马赛克效果(相当于是放大后像素“糊”成一片了)。Android图形图像处理:马赛克(Mosaic)效果_android对图片部分区域做马赛克-CSDN博客。_kotlin matrixhttps://blog.csdn.net/zhangphil/article/details/144559418https://blog.csdn.net/zhangphil/article/details/144559418https://blog.csdn.net/zhangphil/article/details/144559418

相关文章:

Android BitmapShader简洁实现马赛克,Kotlin(一)

Android BitmapShader简洁实现马赛克&#xff0c;Kotlin&#xff08;一&#xff09; 这一篇&#xff0c; Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果&#xff0c;Kotlin&#xff08;3&#xff09;-CSDN博客 基于PorterDuffXfermode实现马…...

NavVis手持激光扫描帮助舍弗勒快速打造“数字孪生”工厂-沪敖3D

在全球拥有近100家工厂的舍弗勒&#xff0c;从2016年开启数字化运营进程&#xff0c;而当前制造、库存、劳动力和物流的数字化&#xff0c;已无法支持其进一步简化工作流程&#xff0c;亟需数字化物理制造环境&#xff0c;打造“数字孪生”工厂。 NavVis为其提供NavVis VLX 3…...

web服务器 网站部署的架构

WEB服务器工作原理 Web web是WWW(World Wide Web)的简称&#xff0c;基本原理是&#xff1a;请求(客户端)与响应(服务器端)原理&#xff0c;由遍布在互联网中的Web服务器和安装了Web浏览器的计算机组成 客户端发出请求的方式&#xff1a;地址栏请求、超链接请求、表单请求 …...

ecovadis验厂相关要求

EcoVadis验厂的相关要求主要包括以下几个方面&#xff1a; 一、企业基本资质要求 合法注册与运营&#xff1a;企业必须是合法注册并运营的法人实体&#xff0c;具备合法的经营资质&#xff0c;如营业执照、税务登记证等。无严重违法记录&#xff1a;在过去三年内&#xff0c;…...

SSM开发(一)JAVA,javaEE,spring,springmvc,springboot,SSM,SSH等几个概念区别

目录 JAVA 框架 javaEE spring springmvc springboot SSM SSH maven JAVA 一种面向对象、高级编程语言&#xff0c;Python也是高级编程语言&#xff1b;不是框架(框架&#xff1a;一般用于大型复杂需求项目&#xff0c;用于快速开发)具有三大特性&#xff0c;所谓Jav…...

Spring Boot中选择性加载Bean的几种方式

说明&#xff1a;用过Spring框架的都知道其自动装配的特性&#xff0c;本文介绍几种选择性加载Bean的方式。Spring自动装配参考以下两篇文章&#xff1a; 基于SpringBoot的三层架构开发&统一响应结果 SpringBoot自动装配原理简单分析 ConditionalOnProperty Conditiona…...

【JVM】垃圾收集器详解

你将学到 1. Serial 收集器 2. ParNew 收集器 3. Parallel Scavenge 收集器 4. Serial Old 收集器 5. Parallel Old 收集器 6. CMS 收集器 7. G1 收集器 在 Java 中&#xff0c;垃圾回收&#xff08;GC&#xff09;是自动管理内存的一个重要机制。HotSpot JVM 提供了多种…...

【实用技能】如何在Stimulsoft产品中使用用户函数,快速创建报表及仪表盘

Stimulsoft Ultimate &#xff08;原Stimulsoft Reports.Ultimate&#xff09;是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能&#xff0c;Stimulsoft Ultimate包含了…...

MySQL四种隔离级别

MySQL的隔离级别是在事务这个大主题下面产生的说法。 那么什么是事务&#xff0c;事务就是一组sql语句&#xff0c;要么全部执行成功&#xff0c;要么都不执行&#xff0c;不能只执行成功其中的部分sql。事务的最终目的是为了保证数据库数据的完整性、一致性和可用性。 要保…...

Unity入门1

安装之后无法获得许可证&#xff0c;可以考虑重装 新建项目 单击空白处生成脚本 双击c#文件 会自动打开vstudio 检查引用 如果没有引用&#xff0c;重开vstu&#xff0c;或者重新加载项目 hierarchy层级 scenes场景 assets资产 inspector督察 icon图标 资源链接&…...

qml Loader详解

1、概述 QML Loader是Qt Quick框架中的一个关键元素&#xff0c;它允许开发者动态地加载和卸载QML组件。这种动态加载机制对于提升应用程序的性能、响应速度和用户体验至关重要。通过Loader&#xff0c;应用程序可以在需要时才加载特定的组件&#xff0c;而不是在启动时一次性…...

《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; 《安富莱嵌入式周报》第349期&#xff1a;VSCode正式支持Matlab调试&#xff0c;DIY录音室级麦克风…...

web端ActiveMq测试工具

如何用vue3创建简单的web端ActiveMq测试工具&#xff1f; 1、复用vue3模板框架 创建main.js,引入APP文件&#xff0c;createApp创建文件&#xff0c;并加载element插件&#xff0c;然后挂载dom节点 2、配置vue.config.js脚本配置 mport { defineConfig } from "vite&qu…...

1561. 你可以获得的最大硬币数目

class Solution:def maxCoins(self, piles: List[int]) -> int:piles.sort()res,n0,len(piles)for i in range(n//3):respiles[n-2-2*i]return res这里如果"你"想要获取最大&#xff0c;那么从最大的开始找 每隔俩算一个最大累计&#xff0c;Bob默认自己从最小那找…...

NIO | 什么是Java中的NIO —— 结合业务场景理解 NIO (二)

实时通信应用 的主流技术 并非NIO &#xff0c; 整理本文的目的是 更好的理解 NIO 。 在现代的 即时聊天应用中&#xff0c;使用 WebSocket、MQTT 或 SignalR 等协议更为普遍。 若您想了解 当前主流的有关 实时通信应用 的技术 &#xff0c; 请移步他文。 (一) 业务场景 实…...

GD32L233RB 驱动数码管

1.数码管有8段A、B、C、D、E、F、G 和 H小数点 以及片选信号&#xff08;DIG&#xff09; DIG用来选择那一位&#xff0c;A-G 用来显示段 静态显示每次只能一次显示单个位 动态显示&#xff08;动态扫描&#xff09;所有的位显示结束要在10ms左右 显示2ms 消光1ms 实…...

AIGC视频生成模型:Stability AI的SVD(Stable Video Diffusion)模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Stability AI的视频生成模型SVD(Stable Video Diffusion)模型&#xff0c;这家公司在图像生成领域富有盛名&#xff0c;开发并维护了知名开源项目SD系列…...

Linux 系统错误处理简介

Linux 系统错误处理简介 1. errno&#xff1a;错误代码的载体2. strerror()&#xff1a;错误信息的翻译官3. perror()&#xff1a;便捷的错误信息输出4. 系统调用与库函数的区别5. 错误处理的最佳实践 在 C/C 程序开发中&#xff0c;我们经常需要处理各种错误情况 Linux 系统提…...

systemC示例

main.cpp #include <memory> using namespace std; #include "top.h" int sc_main(int i, char *av[]) { // 关闭关于 IEEE 1666 标准中过时特性的警告 sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", SC_DO_NOTHING); cout <…...

C++打字模拟

改进于 文宇炽筱_潜水 c版的打字效果_c自动打字-CSDN博客https://blog.csdn.net/2401_84159494/article/details/141023898?ops_request_misc%257B%2522request%255Fid%2522%253A%25227f97863ddc9d1b2ae9526f45765b1744%2522%252C%2522scm%2522%253A%252220140713.1301023…...

国产低功耗带LCD驱动和触摸按键功能的MCU

以下是国产低功耗、集成LCD驱动和触摸按键功能的MCU精选型号及其核心特性&#xff0c;结合性能、功耗和适用场景进行综合推荐&#xff1a; 1.灵动微MM32L0130系列 257 核心特性&#xff1a;低功耗&#xff1a;待机模式功耗低至100nA&#xff0c;支持多种低功耗模式。 LCD驱动&a…...

在 imx93 平台调试 nau88c10 声卡

一、环境介绍 linux 版本&#xff1a;6.6.52 soc&#xff1a;imx9331 codec&#xff1a;nau88c10 使用的内核文件为 Image&#xff0c;dtb 文件为&#xff1a;imx93-11x11-evk.dtb 二、硬件检查 i2s 信号线要接对 i2c 控制信号建议为 4.7k 上拉 codec 供电可以按参考设计…...

机器学习-分类算法评估标准

一. 准确率 accuracy 将预测结果和测试集的目标值比较&#xff0c;计算预测正确的百分比 准确率越高说明模型效果越好 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier #加载鸢尾花…...

美区TikTok解封后如何回归使用?

随着2025年初美区TikTok解封的消息引起了广泛关注&#xff0c;许多用户纷纷开始重新关注这一全球最受欢迎的短视频平台。在经历了数月的禁用期后&#xff0c;TikTok在美国市场的回归&#xff0c;代表了这一平台的巨大潜力和挑战。从用户的使用习惯&#xff0c;到平台的内容策略…...

行人识别检测数据集,yolo格式,PASICAL VOC XML,COCO JSON,darknet等格式的标注都支持,准确识别率可达99.5%

作者简介&#xff1a; 高科&#xff0c;先后在 IBM PlatformComputing从事网格计算&#xff0c;淘米网&#xff0c;网易从事游戏服务器开发&#xff0c;拥有丰富的C&#xff0c;go等语言开发经验&#xff0c;mysql&#xff0c;mongo&#xff0c;redis等数据库&#xff0c;设计模…...

grafana + Prometheus + node_exporter搭建监控大屏

本文介绍生产系统监控大屏的搭建&#xff0c;比较实用也是实际应用比较多的方式&#xff0c;希望能够帮助大家对监控系统有一定的认识。 0、规划 grafana主要是展示和报警&#xff0c;Prometheus用于保存监控数据&#xff0c;node_exporter用于实时采集各个应用服务器的事实状…...

【腾讯云】docker创建网络遇到Unable to enable SKIP DNAT rule

docker创建网络遇到Unable to enable SKIP DNAT rule 背景 今天打算在服务器上安装es,但是在创建网络时&#xff0c;提示 Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER…...

DeepSeek R1模型解读与使用

DeepSeek在推出R1预览版两个月后&#xff0c;发布了R1的正式版本&#xff0c;并且开源了模型&#xff0c;开放了API调用。我们直接来解读一下这款模型。 这是官方的性能评测图。从左到右分别是DeepSeek-R1&#xff0c;o1正式版&#xff0c;32B蒸馏版R1&#xff0c;o1-mini&…...

AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案

文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在这个AI技术日新月异的时代&#xff0c;图像生成模型已经成为了创意工作者和开发者手中…...

api开发如何确保通过非官方库解析口令的合法性?

通过非官方库解析淘宝口令可能存在违反淘宝平台规则以及法律法规的风险&#xff0c;很难完全确保其合法性。如果确实有需求&#xff0c;可从以下几个方面尽量降低风险&#xff0c;提高合法性&#xff1a; 了解法律法规 《中华人民共和国网络安全法》&#xff1a;需确保解析行为…...

第6章 ThreadGroup详细讲解(Java高并发编程详解:多线程与系统设计)

1.ThreadGroup 与 Thread 在Java程序中&#xff0c; 默认情况下&#xff0c; 新的线程都会被加入到main线程所在的group中&#xff0c; main线程的group名字同线程名。如同线程存在父子关系一样&#xff0c; Thread Group同样也存在父子关系。图6-1就很好地说明了父子thread、父…...

如何使用Python脚本将本地项目上传到 GitHub

前言 这里我们通过创建一个新的github仓库&#xff0c;来测试我们的脚本能否上传我们本地的项目&#xff0c;并且进行更新。首先你需要先安装 Git&#xff0c;关于这部分我好像没有记录过&#xff0c;这里我搜索看了一下&#xff0c;这篇博客写的Git安装详解应该是比较齐全的&…...

css动画水球图

由于echarts水球图动画会导致ios卡顿&#xff0c;所以纯css模拟 展示效果 组件 <template><div class"water-box"><div class"water"><div class"progress" :style"{ --newProgress: newProgress % }"><…...

Shellcode

什么是shellcode shellcode通常是软件漏洞利用过程中使用一小段机器代码 作用 1.启动shell&#xff0c;进行交互 2.打开服务器端口等待连接 3.反向连接端口 4.。。。 如何编写shellcode 1.设置rdi指向/bin/sh 2.rsi0,rdx0 3.rax0x3b 4.syscall进行系统调用 64位系统…...

Element使用表单重置如果不使用prop,重置无法生效

文章目录 为什么需要 prop&#xff1f;示例&#xff1a;使用 prop 的正确方式关键点总结 在 element-ui 的 el-form 组件中&#xff0c; prop 属性是与表单验证和表单字段绑定密切相关的&#xff0c;尤其在使用 resetFields() 重置表单数据时。 如果不使用 prop&#xff0…...

[Qt]系统相关-网络编程-TCP、UDP、HTTP协议

目录 前言 一、UDP网络编程 1.Qt项目文件 2.UDP类 QUdpSocket QNetworkDatagram 3.UDP回显服务器案例 细节 服务器设计 客户端设计 二、TCP网络编程 1.TCP类 QTcpServer QTcpSocket 2.TCP回显服务器案例 细节 服务器设计 客户端设计 三、HTTP客户端 1.HTTP…...

两台局域网电脑通过飞秋传输大文件失败的解决方案

问题描述&#xff1a; 局域网两台电脑之间传输大文件&#xff08;超过20G&#xff09;&#xff0c;不想太复杂&#xff0c;就各装个飞秋。但是通过直接发送文件发现总是失败&#xff0c;一会就中断了。 解决方法&#xff1a; 主界面上有一个文件共享的按钮&#xff0c;通过文…...

安卓程序作为web服务端的技术实现(二):Room 实现数据存储

已经实现web服务器安卓程序作为web服务端的技术实现&#xff1a;AndServer 实现登录权限拦截-CSDN博客 现在需要和正常web项目类似&#xff0c;那么就需要操作数据库 一般web项目都是选择较为重型的数据库如MySQL&#xff0c;SQL server等 这里是安卓项目&#xff0c;我目前…...

代码工艺:实践 Spring Boot TDD 测试驱动开发

TDD 的核心理念是 “先写测试&#xff0c;再写功能”&#xff0c;其过程遵循一个严格的循环&#xff0c;即 Red-Green-Refactor&#xff1a; TDD 的流程 1. Red&#xff08;编写失败的测试&#xff09; 根据需求&#xff0c;先编写一个测试用例&#xff0c;描述期望的行为。…...

MySQL命令及用法(精华版)

目录 DDL&#xff08;数据定义语言&#xff09; 数据库操作 表操作 DML&#xff08;数据操作语言&#xff09; DQL&#xff08;数据查询语言&#xff09; 基本查询 条件查询 聚合函数 分组查询 排序查询 分页查询 DCL&#xff08;数据控制语言&#xff09; 用户…...

73,【5】BUUCTF WEB [网鼎杯 2020 玄武组]SSRFMe(未解出)

进入靶场 又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码 <?php // 检查 URL 是否为内部 IP 地址 function check_inner_ip($url) {// 使用正则表达式检查 URL 格式是否以 http、https、gopher 或 d…...

修改word的作者 最后一次保存者 总编辑时间 创建时间 最后一次保存的日期

作者&#xff1a; 1.打开word文件 2.点击左上角的文件 3.选项 4.用户信息 5.将用户信息中的 姓名改为你需要的名字 最后一次保存者 1.word重命名为.zip文件 2.docProps中有个core.xml 3.用记事本打开有个lastModifiedBy标签&#xff0c;将里面内容改为你需要的名字 总编辑时…...

深入MapReduce——引入

引入 前面我们已经深入了HDFS的设计与实现&#xff0c;对于分布式系统也有了不错的理解。 但HDFS仅仅解决了海量数据存储和读写的问题。要想让数据产生价值&#xff0c;一定是需要从数据中挖掘出价值才行&#xff0c;这就需要我们拥有海量数据的计算处理能力。 下面我们还是…...

Formality:不可读(unread)的概念

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482https://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 在Formality中有时会遇到不可读(unread)这个概念&#xff0c;本文就将对此…...

leetcode刷题记录(八十一)——236. 二叉树的最近公共祖先

&#xff08;一&#xff09;问题描述 236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09;236. 二叉树的最近公共祖先 - 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科 [https://baike.baidu.com/item/%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B…...

C++:将字符数组rkpryyrag,每个字母转换为其前面第13个字母后输出,如果超过a则从z再继续接着数。例如:b前面第1个字母是a。a前面第3个字母是x。

代码如下&#xff1a; #include <iostream> #include <string> using namespace std;int main(){string str "rkpryyrag";for (int i 0; i < str.length(); i){if (str[i] > a && str[i] < z){if (str[i] - a < 13){cout <<…...

特征选择(机器学习)

目录 1. 为什么需要特征选择2. 常见的特征选择方法2.1 过滤式&#xff08;Filter Methods&#xff09;小示例&#xff08;用 Python 伪代码表达&#xff09;&#xff1a; 2.2 包裹式&#xff08;Wrapper Methods&#xff09;小示例&#xff08;RFE 伪代码示例&#xff09;&…...

基于微信小程序的个人健康管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

Windows系统提示RunDLL PcaWallpaperAppDetect错误修复方法

最近&#xff0c;Win11 24H2预览版和Win10 LTSC 2025功能更新偶尔会触发RunDLL错误弹窗 具体表现为 //英文提示 Error in C:\WINDOWS\system32\PcaSvc.dll Missing entry: PcaWallpaperAppDetect//中文提示 C:\WINDOWS\system32\PcaSvc.dll出错 丢失条目:PcaWallpaperAppDe…...

文件上传漏洞详解

第一关&#xff08;JS绕过&#xff09; 1.1使用bp进行绕过 先将要上传的php文件的后缀改为png&#xff0c;然后在上传时抓包&#xff0c;将png后缀再改为php&#xff0c;发包&#xff0c;此时上传成功 1.2使用js进行绕过 打开浏览器的检查&#xff0c;将其中的checkFile函数…...