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

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录

    • 前言
    • 一、PS的历史
    • 二、PS的应用场景
    • 三、PS的功能及工具用法
    • 四、图层的概念
    • 五、调整与滤镜
    • 六、创建蒙版
    • 七、绘制形状与路径
    • 八、实战练习
    • 结语


前言

在当今数字化的世界里,视觉内容无处不在,而创建和编辑这些内容的能力已经成为许多行业的核心技能。Adobe Photoshop作为全球最著名的图像编辑软件之一,自1990年首次发布以来,已经成为了创意专业人士和业余爱好者手中的利器。它不仅仅是一个软件,更是一种艺术表达的方式。本文将深入探讨Photoshop的历史、功能以及使用技巧,帮助读者更好地理解和掌握这一强大的工具。


一、PS的历史

Adobe Photoshop,简称PS,是一款由Adobe Systems开发的图像编辑软件。Photoshop最初是在1987年由托马斯·诺尔(Thomas Knoll)创建的一个名为Display的程序,它原本是用于显示灰度图像的。随后他的兄弟约翰·诺尔(John Knoll)加入了这个项目,并开始为该软件添加更多功能,如色彩支持等。在1988年,两人决定将其商业化,并最终与Adobe公司合作。1990年2月,Photoshop 1.0正式发布,成为图形设计和摄影行业的重要工具。

从那时起,Photoshop经历了多个版本的迭代,每次更新都带来了新的特性和改进。它逐渐成为了专业级别的图像处理标准,被广泛应用于印刷出版、广告摄影、影像创意、网页制作等多个领域。

二、PS的应用场景

  • 摄影后期处理:调整曝光、对比度、色彩平衡等参数,修复照片缺陷。
  • 平面设计:创作宣传海报、名片、书籍封面等作品。
  • UI/UX设计:设计网站界面、移动应用程序界面等交互式产品。
  • 3D建模预览:虽然不是主要用途,但也可以作为3D模型的纹理贴图制作工具。
  • 视频编辑:结合After Effects使用,可以完成一些基础的视频帧处理任务。

三、PS的功能及工具用法

  • 基础工具
    • 选择工具:包括矩形选框工具(快捷键M)、套索工具(L)、快速选择工具(W),用于精确地选择图像中的特定区域。这些工具可以帮助用户隔离出需要编辑的部分。
    • 绘画工具:例如画笔工具(B)、铅笔工具(B)、橡皮擦工具(E),提供丰富的绘画体验。可以通过调整硬度、不透明度、流量等属性来改变绘制效果。
    • 修饰工具:比如模糊工具(R)、锐化工具(R)、涂抹工具(R),用于增强或修改图像细节。通过鼠标拖动可以实现不同程度的效果。
    • 文本工具(T):可以在图像中添加可编辑的文本图层,设置字体、大小、颜色等属性。
  • 高级特性
    • 图层:允许用户将不同的元素放在单独的图层上,方便管理和编辑。可以通过图层面板调整顺序、混合模式、透明度等。
    • 蒙版和通道:提供了非破坏性编辑的方式,以及对颜色信息进行更精细控制的能力。使用蒙版可以平滑过渡不同图层的内容,而通道则用于分别调整红、绿、蓝三原色。
    • 滤镜效果:内置了大量的滤镜,如高斯模糊、镜头光晕等,可以用来创造特殊视觉效果。每个滤镜都有自己的参数设置界面。
    • 智能对象:保持图像内容的矢量数据或原始分辨率,使得放大时不会失真。双击智能对象图层缩略图即可编辑其内容。
    • 自动化:通过动作记录器或者脚本语言(如JavaScript、AppleScript、VBScript)来实现批处理操作。动作可以录制一系列命令并重复应用到多张图片上。
  • 其他重要工具
    • 修复画笔工具(J):用于去除瑕疵、污点或不需要的对象,同时保留周围的纹理和阴影。
    • 裁剪工具(C):用于调整图像尺寸或构图,确保图像比例符合需求。
    • 渐变工具(G):可以创建线性、径向、角度、对称和菱形五种类型的渐变填充。
    • 钢笔工具(P):用于创建路径,是绘制形状和选择复杂轮廓的强大工具。

四、图层的概念

什么是图层?

在Photoshop中,图层就像是透明的覆盖物,你可以在上面绘制或编辑图像而不影响下面的图层。每个图层可以包含不同的图像元素、文本、形状等。你可以把它们想象成堆叠在一起的一系列透明胶片,每一层都可以独立地进行修改。

图层面板

当你打开Photoshop时,你会看到一个叫做“图层”面板(Layers Panel)的窗口,默认情况下它位于界面的右侧。这个面板展示了所有当前文件中的图层,并且允许你管理这些图层,包括创建新图层、调整图层顺序、设置图层样式和效果等。

常用图层操作

  • 新建图层:通过点击图层面板底部的新建图层按钮,或者使用快捷键 Shift + Ctrl + N (Windows) / Shift + Command + N (Mac),可以添加一个新的空白图层。
  • 删除图层:选择要删除的图层,然后按下键盘上的 Delete 键,或者右键单击图层并选择删除图层选项。
    复制图层:选中图层后,按 Ctrl + J (Windows) 或 Command + J (Mac) 可以快速复制所选图层。
  • 调整图层顺序:可以通过拖动图层上下移动来改变它们的显示顺序。最顶部的图层会遮挡下面的图层。
  • 锁定图层:锁定图层可以防止意外编辑,你可以选择锁定透明像素、位置、绘画或全部。
  • 合并图层:当多个图层不再需要单独编辑时,可以选择合并它们以减少文件大小或简化工作流程。注意一旦合并,就无法再单独编辑原始图层了。

图层的属性

  • 不透明度:控制图层的透明程度,从完全透明到完全不透明。
  • 填充:与不透明度类似,但只影响图层的内容,不影响图层样式。
  • 混合模式:更改图层与其下方图层之间的颜色混合方式,产生不同的视觉效果。

特殊类型的图层

  • 背景图层:默认情况下,新建文档会有一个名为“背景”的图层,它是锁定状态的,不能直接调整其位置或透明度。双击背景图层可以解锁它,使其变成普通图层。
  • 文字图层:当你使用文字工具输入文本时,会自动生成一个文字图层,保留了文本的可编辑性。
  • 形状图层:使用形状工具绘制矢量图形时创建的图层。
  • 智能对象:这是一种特殊的图层类型,它可以包含图像、文本或其他图层,并作为一个整体被非破坏性地变换或滤镜处理。
  • 调整图层:用于应用色彩和色调调整,不会直接修改图像数据,因此可以随时调整或移除。

五、调整与滤镜

图像调整

图像调整是指对图像的颜色、色调、对比度等属性进行非破坏性的修改,以改善或改变图像的视觉效果。Photoshop提供了多种调整工具,允许用户根据需要对图像进行微调。以下是一些常用的调整选项:

  • 亮度/对比度(Brightness/Contrast):增加或减少图像的整体亮度和对比度。
  • 色阶(Levels):通过调整输入和输出色阶来控制图像的阴影、中间调和高光部分。
  • 曲线(Curves):一个更为精细的调整工具,可以单独调整不同亮度级别的色彩分量,提供更精确的色调校正。
  • 色彩平衡(Color Balance):调整图像中的红、绿、蓝三种原色的比例,从而改变整体色调。
  • 色相/饱和度(Hue/Saturation):改变图像中颜色的色相、饱和度和明度。
  • 黑白(Black & White):将彩色图像转换为灰度或黑白图像,并可选择性地调整不同颜色通道的灰度值。
  • 曝光(Exposure):调整图像的曝光度,类似于摄影中的曝光设置。

滤镜

滤镜是用来创建特殊视觉效果的强大工具。Photoshop自带了大量的滤镜,可以模拟传统暗房技术的效果,也可以生成各种艺术风格和创意效果。使用滤镜时需要注意的是,它们通常会直接修改图层的内容,因此建议先将图层转换为智能对象,以便保持滤镜效果的非破坏性和可编辑性。一下是一些常见的滤镜:

  • 模糊滤镜(Blur Filters):如高斯模糊、动感模糊等,用来柔化图像或模拟运动效果。
  • 锐化滤镜(Sharpen Filters):增强图像细节,使边缘更加清晰。
  • 扭曲滤镜(Distort Filters):如波浪、球面化等,用于变形图像以创造独特的视觉效果。
  • 纹理滤镜(Texture Filters):给图像添加质感,例如颗粒、画布纹理等。
  • 杂色滤镜(Noise Filters):添加或减少图像中的随机噪点,可用于模拟胶片颗粒或其他效果。
  • 渲染滤镜(Render Filters):创建三维形状、光线效果等。
  • 艺术滤镜(Artistic Filters):模仿不同的绘画风格,如油画、水彩等。

六、创建蒙版

什么事蒙版?

蒙版(Mask)是Photoshop中一种用于控制图层透明度的技术,允许你以非破坏性的方式隐藏或显示图层的部分内容。通过蒙版,你可以精确地决定哪些部分可见,哪些部分不可见,而不会永久改变原始图像数据。这使得后期调整变得更加灵活和容易。

类型

  • 图层蒙版(Layer Mask):这是最常用的蒙版类型,它与特定的图层关联,用黑白灰度图像来定义该图层的透明度。白色表示完全不透明,黑色表示完全透明,灰色则表示不同程度的半透明。
  • 矢量蒙版(Vector Mask):由路径组成的蒙版,适用于需要锐利边缘的情况,如文字或几何形状。矢量蒙版可以在不失真的情况下进行缩放。
  • 剪贴蒙版(Clipping Mask):不是传统意义上的蒙版,而是利用下方图层的透明度来影响上方图层的可见性。

如何创建蒙版

  • 添加图层蒙版
    • 选择要添加蒙版的图层。
    • 点击图层面板底部的“添加图层蒙版”按钮(一个矩形内有一个圆圈的图标),或者右键点击图层并选择“添加图层蒙版”。
    • 默认情况下,新蒙版是全白的,意味着图层上的所有内容都是可见的。
  • 编辑蒙版
    • 使用画笔工具(Brush Tool)或其他绘图工具,在蒙版上绘画。使用黑色可以隐藏图层上的对应区域;使用白色可以恢复隐藏的内容;使用灰色可以获得半透明效果。
    • 调整画笔的硬度和大小,以获得更自然的过渡效果。
    • 如果需要反转蒙版,可以选择蒙版并按 Ctrl + I (Windows) 或 Command + I (Mac) 来反相颜色。
  • 应用或删除蒙版
    • 应用蒙版会将蒙版的效果永久应用于图层,并移除蒙版本身。
    • 删除蒙版则会彻底移除蒙版及其效果,但保留原始图层内容。

蒙版技巧

  • 链接蒙版和图层:默认情况下,蒙版和图层是链接在一起的,移动其中一个也会移动另一个。如果想单独移动蒙版或图层,可以点击图层面板中两者之间的链接图标取消链接。
  • 查看蒙版:按下键盘上的 Alt 键(Windows)或 Option 键(Mac),然后点击蒙版缩略图,可以看到纯黑白的蒙版视图。
  • 蒙版密度:可以通过调整图层蒙版的不透明度来整体控制蒙版的效果强度。

适用场景

  • 图像合成:当你想要将两个不同的图像无缝融合时,蒙版可以帮助你平滑地过渡不同图像之间的边界。
  • 局部调整:结合调整图层和蒙版,可以对图像的特定区域进行精确的颜色或亮度调整,而不影响其他部分。
  • 创造特效:使用渐变、图案填充等方法制作蒙版,可以创造出各种独特的视觉效果。

七、绘制形状与路径

形状工具(Shape Tools)

Photoshop 提供了一系列的形状工具,用于快速创建常见的几何图形,如矩形、椭圆、多边形等。这些形状是以矢量的形式创建的,因此可以无损缩放,并且可以在任何时候进行编辑。

  • 矩形工具(Rectangle Tool):用于绘制矩形或正方形。
  • 圆角矩形工具(Rounded Rectangle Tool):用于绘制带有圆角的矩形。
  • 椭圆工具(Ellipse Tool):用于绘制椭圆或圆形。
  • 多边形工具(Polygon Tool):用于绘制多边形,可以通过设置边的数量来改变形状。
  • 直线工具(Line Tool):用于绘制直线段。
  • 自定义形状工具(Custom Shape Tool):可以从预设库中选择各种复杂的形状,或者导入自己的SVG文件作为自定义形状。

使用形状工具

  1. 选择工具箱中的一个形状工具。
  2. 在选项栏中选择填充颜色、描边颜色以及是否创建形状图层、工作路径或像素。
  3. 按住 Shift 键拖动鼠标以保持比例绘制正方形、圆形或多边形。
  4. 可以通过路径选择工具调整形状的位置或大小,也可以使用直接选择工具编辑形状的锚点。

路径工具(Path Tools)

路径是一系列连接的点,它们定义了形状的轮廓。路径本身是不可见的,但可以用来创建形状、文字、选区等。路径工具包括钢笔工具(Pen Tool)、自由钢笔工具(Freeform Pen Tool)、删除锚点工具(Delete Anchor Point Tool)、添加锚点工具(Add Anchor Point Tool)和转换点工具(Convert Point Tool)。

  • 钢笔工具(Pen Tool):用于手动绘制精确的路径。点击鼠标添加锚点,按住并拖动可以创建曲线。按 Ctrl (Windows) 或 Command (Mac) 键可以临时切换到直接选择工具移动锚点。
  • 自由钢笔工具(Freeform Pen Tool):允许你像用铅笔一样自由地绘制路径,适合绘制不规则形状。
  • 删除锚点工具(Delete Anchor Point Tool):从现有路径中移除锚点。
  • 添加锚点工具(Add Anchor Point Tool):在现有路径上添加新的锚点。
  • 转换点工具(Convert Point Tool):更改锚点类型(角点或平滑点),或者调整控制柄的方向。

编辑路径

  • 使用路径选择工具可以选择整个路径并进行移动、复制或删除操作。
  • 使用直接选择工具可以选择单个锚点或片段进行更精细的编辑。
  • 右键点击路径可以选择将其转化为选区,或者应用不同的路径操作如填充、描边等。

结合形状与路径

  • 组合形状:你可以通过图层面板上的路径操作按钮(如合并形状、减去顶层形状、交集形状区域、排除重叠形状)来组合多个形状,创-建复杂的设计元素。
  • 文本沿路径:将文本放置在路径上,使其跟随路径的曲线。只需使用文字工具点击路径,然后开始输入即可。
  • 蒙版与剪贴蒙版:路径可以用来创建蒙版,隐藏或显示图层的部分内容;还可以作为剪贴蒙版的基础,让上方图层的内容仅显示在下方图层的形状范围内。

八、实战练习

下面我将以创建一个简单的社交媒体封面设计为例,详细说明使用Photoshop的步骤。这个例子适合初学者,并涵盖了多个核心功能,如图层、蒙版、文本工具和形状工具等。

项目:创建社交媒体封面

步骤

1. 新建文档

  • 打开Photoshop,选择 文件 > 新建 或按快捷键 Ctrl + N (Windows) / Command + N (Mac)。
  • 设置宽度为820像素,高度为312像素,分辨率设为72 ppi(对于屏幕显示足够),颜色模式为RGB,点击确定。

2. 添加背景

  • 使用矩形选框工具(Marquee Tool)或直接通过 图层 > 新建填充图层 > 纯色 来添加一个纯色背景。选择一种与品牌色彩相匹配的颜色作为底色。
  • 或者,你可以导入一张图片作为背景。确保图片版权无问题且符合你的设计需求。

3. 创建图形元素

  • 使用形状工具(Shape Tool),比如矩形工具绘制一些几何图形来装饰封面。尝试不同的颜色和不透明度,使图形看起来有层次感。
  • 如果需要更复杂的形状,可以使用钢笔工具(Pen Tool)绘制自定义路径并转换为形状。

4. 应用图层样式

  • 双击形状图层,在弹出的“图层样式”对话框中添加阴影、渐变叠加或其他效果,以增强视觉吸引力。

5. 插入品牌标志

  • 将品牌的logo以PNG格式拖放到文档中,调整大小和位置使其适配整体布局。
  • 如果logo有透明背景,它会自然地融合到设计中;否则,可以使用魔棒工具或快速选择工具去除白色背景。

6. 添加文案

  • 使用文字工具(Type Tool)输入你想要展示的文字内容,如公司名称、口号或活动信息。
  • 选择合适的字体和大小,考虑可读性和美观性。可以通过设置字符间距、行距等属性优化排版。
  • 为了突出重点,可以给重要部分添加特殊样式,如粗体、斜体、下划线或改变颜色。

7. 使用蒙版实现过渡效果

  • 如果想让某些元素之间有柔和的过渡,可以在相应图层上添加图层蒙版(Layer Mask)。然后用黑色画笔在蒙版上涂抹隐藏不需要的部分,用白色恢复可见区域。

8. 最后润色

  • 检查整个设计是否协调一致,必要时调整各元素的位置、比例和效果。
  • 可以添加额外的装饰元素,如图标、线条或纹理,但要保持简洁明了。

9. 导出成品

  • 完成设计后,选择 文件 > 导出 > 存储为Web所用格式文件 > 导出 > 导出为,选择JPEG或PNG格式保存最终版本。
    根据目的选择适当的压缩质量,确保文件大小适合在线分享。

在这里插入图片描述


结语

Photoshop是一门深奥的艺术和技术相结合的学科,它不仅仅局限于上述内容。随着时间的推移,你会发现自己不断探索新的技术和技巧。记住,耐心和持续练习是成为Photoshop大师的关键。希望这篇文章能为你开启一段精彩的Photoshop旅程!

相关文章:

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里,视觉内容无处不在,而创建和编辑这些内容的能力已经成为许多行业的核心技能…...

当comfyui-reactor-node 安装失败urllib.error.HTTPError: HTTP Error 403: Forbidden解决方法

comfyUI 节点comfyui-reactor-node 安装 python install 时 报错 urllib.error.HTTPError: HTTP Error 403: Forbidden 如下: (xxx) xxxxxxx:~/sdb/Q/ComfyUI/custom_nodes/comfyui-reactor-node$ python install.py Traceback (most recent call last): File …...

01基本介绍篇(D2_多线程问题)

目录 一、线程的上下文切换问题 1. 基本介绍 2. 多线程一定比单线程快? 3. 如何减少上下文切换 二、线程安全问题 1. 什么是线程安全? 2. java语言中的线程安全 2.1. 不可变 2.2. 绝对线程安全 2.3. 相对线程安全 2.4. 线程兼容 2.5. 线程对立…...

如何保证光谱相机的稳定性和可靠性

光学系统设计与制造 高质量光学元件:采用高精度研磨和镀膜的透镜、棱镜、光栅等光学元件。优质的透镜可以减少像差和色差,确保光线准确聚焦;高质量的镀膜能够提高光学元件的透光率,降低反射损失,并且增强对不同波段光…...

基于springboot+vue的洪涝灾害应急信息管理系统设计与实现

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...

登录、注册、忘记密码、首页HTML模板

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>登录</title><style>body {display: fl…...

HTML文章翻页功能

效果展示&#xff1a; 效果原理&#xff1a; 1、引入CDN 2、绘制文章翻页样式&#xff0c;以及自动分段 3、获取窗口宽高&#xff0c;计算出当前文章总分段&#xff0c;并实现分页 4、完整代码 <!DOCTYPE html> <html><head><meta charset"utf-8&qu…...

JAVA安全编码规范

1. 数据校验 对外部输入进行校验入参的合法性&#xff0c; 防止内存越界&#xff0c;命令注入&#xff0c;SQL注入&#xff0c;格式化字符串漏洞 校验长度&#xff0c;范围&#xff0c;输入校验采用白名单形式 校验前做归一化处理&#xff0c;使用java.text.Normalizer的n…...

OpenGL —— 基于Qt的视频播放器 - ffmpeg硬解码,QOpenGL渲染yuv420p或nv12视频(附源码)

运行效果 工程说明 源码 vertex.glsl...

爬虫逆向学习(十五):Akamai 3.0反爬分析与sensor-data算法逆向经验

此分享只用于学习用途&#xff0c;不作商业用途&#xff0c;若有冒犯&#xff0c;请联系处理 Akamai 3.0反爬分析与sensor-data算法逆向经验 Akamai开始正题前须知站点信息接口分析反爬点反爬点定位_abck定位结果 逆向前准备工作sensor_data生成位置本地替换文件 请求体sensor…...

java项目启动时,执行某方法

1. J2EE项目 在Servlet类中重写init()方法&#xff0c;这个方法会在Servlet实例化时调用&#xff0c;即项目启动时调用。 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;public class MyServlet extends HttpServlet {Overridepublic void …...

学会使用开源软件jclasslib 字节码文件的组成 详解

应用场景 1 应用场景 2 学习路线 以正确的姿势打开文件 字节码文件的组成 玩转字节码常用工具 以正确的姿势打开文件 开源软件 jclasslib github 地址 https://github.com/ingokegel/jclasslib 工具使用 字节码文件的组成 基本信息 常量池 字段 方法 属性 详解 魔数 主副版…...

Flask表单处理与验证

Flask是一个轻量级的Python框架&#xff0c;它通过扩展库提供了对表单处理与验证的支持。WTForms是一个流行的Flask扩展库&#xff0c;用于创建和验证Web表单。它提供了一种声明式的方法来定义表单结构和验证逻辑&#xff0c;使得表单处理更为简洁和优雅。下面&#xff0c;我们…...

如何通俗易懂的理解 html js css

HTML、CSS 和 JavaScript 是构建网页的三大核心技术。为了通俗易懂地理解它们&#xff0c;我们可以用一个简单的比喻&#xff1a;**盖房子**。 --- ### 1. **HTML&#xff1a;房子的结构** HTML&#xff08;HyperText Markup Language&#xff09;就像房子的**骨架**。它定义…...

信凯科技业绩波动明显:毛利率远弱行业,资产负债率偏高

《港湾商业观察》施子夫 1月8日&#xff0c;深交所官网显示&#xff0c;浙江信凯科技集团股份有限公司&#xff08;以下简称“信凯科技”&#xff09;主板IPO提交注册。 自2022年递交上市申请&#xff0c;信凯科技的IPO之路已走过两年光景&#xff0c;尽管提交注册&#xff0…...

蓝牙BT04-A的使用与相关AT指令

一、AT指令没有返回的问题及解决方案 检查指令格式&#xff1a; 确认指令格式是否正确&#xff0c;包括特定的命令和结尾的回车换行符&#xff08;n&#xff09;。 检查TX/RX连接&#xff1a; 确认TX&#xff08;发送&#xff09;和RX&#xff08;接收&#xff09;线是否连接正…...

新手如何练习SQL?|掌握

对于新手想要练习SQL语句&#xff0c;可以从以下几个方面入手&#xff1a; 1. 建立理论基础 首先深入理解数据库的核心组件&#xff0c;包括数据库本身、其内部的各个表、表中的字段及其对应的数据类型&#xff08;如字符串、整型、日期等&#xff09;&#xff0c;以及数据库…...

JavaScript宝典下

小哆啦闭关修炼已久&#xff0c;潜心攻读专业秘技&#xff0c;方才下山考研本欲大展宏图&#xff0c;怎奈山河虽壮志难酬&#xff0c;终是觉察考研无望。思来想去&#xff0c;不若弃考研之念&#xff0c;重拾敲代码之道&#xff0c;复盘前端奇术&#xff0c;以备闯荡职场江湖。…...

浅谈云计算12 | KVM虚拟化技术

KVM虚拟化技术 一、KVM虚拟化技术基础1.1 KVM虚拟化技术简介1.2 KVM虚拟化技术架构1.2.1 KVM内核模块1.2.2 用户空间工具&#xff08;QEMU、Libvirt等&#xff09; 二、KVM虚拟化技术原理2.1 硬件辅助虚拟化2.2 VMCS结构与工作机制 三、KVM虚拟化技术面临的挑战与应对策略3.1 性…...

Spring Boot 动态表操作服务实现

Spring Boot 动态表操作服务实现 Spring Boot 动态表操作服务实现1. 环境配置2. JdbcTemplate 的使用2.1 创建动态表2.2 动态添加字段2.3 动态删除字段2.4 动态修改字段类型2.5 删除表的方法实现 3. 小结3.1 可能的优化 Spring Boot 动态表操作服务实现 在现代的应用开发中&am…...

62_Redis服务器集群优化

Redis集群虽然具备高可用特性,且能实现自动故障恢复,但是如果使用不当,也会存在一些问题,总结如下。 集群完整性问题集群带宽问题数据倾斜问题客户端性能问题命令的集群兼容性问题Lua和事务问题1.集群完整性问题 在 Redis 集群的默认配置下,当节点检测到存在至少一个哈希…...

晨辉面试抽签和评分管理系统之九:随机编排考生的分组(以教师资格考试面试为例)

晨辉面试抽签和评分管理系统&#xff08;下载地址:www.chenhuisoft.cn&#xff09;是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…...

Linux Top 命令 load average 指标解读

前言 作为平台开发的同学&#xff0c;维护平台稳定性是我们最基本的工作职责&#xff0c;下面主要介绍下top 命令里 &#xff0c;load average 这个指标如何去衡量机器负载程度。 概念介绍 load average 是系统在过去 1 分钟、5 分钟、15 分钟 的平均负载&#xff0c;它表示运…...

Nacos: 一个动态服务发现与配置管理平台

Nacos: 一个动态服务发现与配置管理平台 引言 在微服务架构日益普及的今天&#xff0c;服务之间的调用和配置管理变得越来越复杂。为了简化这一过程并提高开发效率&#xff0c;阿里巴巴推出了Nacos——一个易于使用的动态服务发现、配置管理和服务管理平台。 Nacos是什么&am…...

SpringBoot + 事务钩子函数

一、案例背景 拿支付系统相关的业务来举例。在支付系统中&#xff0c;我们需要记录每个账户的资金流水&#xff08;记录用户A因为哪个操作扣了钱&#xff0c;因为哪个操作加了钱&#xff09;&#xff0c;这样我们才能对每个账户的账做到心中有数&#xff0c;对于支付系统而言&…...

OpenCV相机标定与3D重建(56)估计物体姿态(即旋转和平移)的函数solvePnPRansac()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用RANSAC方案从3D-2D点对应关系中找到物体的姿态。 cv::solvePnPRansac 是 OpenCV 中用于估计物体姿态&#xff08;即旋转和平移&#xff09;的…...

【JVM中的三色标记法是什么?】

JVM中的三色标记法是什么? 一、基本概念二、标记过程三、优势与问题四、漏标与多标的解决方案三色标记法(Tri-color Marking Algorithm)是Java虚拟机(JVM)中一种用于追踪对象存活状态的垃圾回收算法。 它基于William D. Hana和Mark S. McCulleghan在1976年提出的两色标记法…...

从0开始学习搭网站第二天

前言&#xff1a;今天比较惭愧&#xff0c;中午打铲吃了一把&#xff0c;看着也到钻二了&#xff0c;干脆顺手把这个赛季的大师上了&#xff0c;于是乎一直到网上才开始工作&#xff0c;同样&#xff0c;今天的学习内容大多来自mdn社区mdn 目录 怎么把文件上传到web服务器采用S…...

43.Textbox的数据绑定 C#例子 WPF例子

固定最简步骤&#xff0c;包括 XAML&#xff1a; 题头里引入命名空间 标题下面引入类 box和block绑定属性 C#&#xff1a; 通知的类&#xff0c;及对应固定的任务 引入字段 引入属性 属性双触发&#xff0c;其中一个更新block的属性 block>指向box的属性 从Textbo…...

钉钉实现第三方登录示例(重复回调问题解析)

钉钉作为专门为企业打造的沟通协助平台&#xff0c;包含的功能很多&#xff0c;考勤打卡&#xff0c;审批&#xff0c;日记&#xff0c;钉盘&#xff0c;钉邮等。基本满足了一些中小企业的大部分工作需求。因此对接钉钉的一些功能模块业务需求在开发中也是比较常见的。钉钉的开…...

Vue2+OpenLayers添加/删除点、点击事件功能实现(提供Gitee源码)

目录 一、案例截图 二、安装OpenLayers库 三、安装Element-UI 四、代码实现 4.1、添加一个点 4.2、删除所有点 4.3、根据经纬度删除点 4.4、给点添加点击事件 4.5、完整代码 五、Gitee源码 一、案例截图 可以新增/删除标记点&#xff0c;点击标记点可以获取到当前标…...

算法妙妙屋-------2..回溯的奇妙律动

回溯算法是一种用于系统性地搜索和解决问题的算法&#xff0c;它以深度优先搜索&#xff08;DFS&#xff09;为基础&#xff0c;用来探索所有可能的解决方案。通过递归地尝试候选解并在必要时回退&#xff08;即“回溯”&#xff09;&#xff0c;它能够高效地解决许多涉及组合、…...

pytest-instafail:让测试失败信息即时反馈

pytest-instafail&#xff1a;让测试失败信息即时反馈 前言一、简介二、优势三、安装与使用3.1 未安装时运行情况3.2 安装3.3 已安装时运行情况3.3 pytest.ini 配置选项 四、对比 总结 前言 当测试用例数量庞大时&#xff0c;定位测试失败的原因往往耗时费力。此时&#xff0c;…...

K8S--配置存活、就绪和启动探针

目录 1 本人基础环境2 目的3 存活、就绪和启动探针介绍3.1 存活探针3.2 就绪探针3.3 启动探针 4 探针使用场景4.1 存活探针4.2 就绪探针4.3 启动探针 5 配置存活、就绪和启动探针5.1 定义存活探针5.2 定义一个存活态 HTTP 请求接口5.3 定义 TCP 的就绪探针、存活探测5.4 定义 g…...

solidity基础 -- 枚举

在智能合约开发领域&#xff0c;Solidity语言因其简洁高效而被广泛使用。其中&#xff0c;枚举&#xff08;enum&#xff09;作为一种特殊的数据类型&#xff0c;为合约的状态管理提供了极大的便利。本文将通过一个具体的Solidity合约示例&#xff0c;深入探讨枚举的定义、使用…...

重回C语言之老兵重装上阵(六)枚举

1. 什么是枚举 (enum)&#xff1f; 枚举&#xff08;enum&#xff09;是 C 语言中的一种数据类型&#xff0c;用于定义一组具名的整数常量。它可以使代码更加可读&#xff0c;帮助程序员更容易理解程序中的常量值。通过枚举&#xff0c;程序员可以使用有意义的名称来代替数字&…...

python+playwright自动化测试(一):安装及简单使用,截图录屏

目录 基本使用 浏览器调用 启用浏览器 创建窗口对象 访问URL 页面的刷新、返回、前进 关闭 截图、录屏、保存pdf 截图 录屏 保存为pdf 设置窗口大小 调试模式 手机模式及new_context的更多参数 手机模式 new_context的其他参数 设置语言和时区 设置和修改位置…...

Mysql--架构篇--体系结构(连接层,SQL层,存储引擎层,文件存储层)

MySQL是一种广泛使用的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;其体系结构设计旨在提供高效的数据存储、查询处理和事务管理。MySQL的体系结构可以分为多个层次&#xff0c;每个层次负责不同的功能模块。 MySQL的体系结构主要由以下几个部分组成&#…...

git merge 压缩提交

在 Git 中&#xff0c;执行 git merge 时可以通过一些操作来“压缩”提交&#xff0c;通常是指将合并过程中的多个提交压缩成一个单一的提交。这可以通过使用 --squash 选项来完成&#xff0c;或者在合并后进行交互式 rebase。以下是两种常见的方法&#xff1a; 方法 1&#x…...

Python脚本自动发送电子邮件

要编写一个Python脚本来自动发送电子邮件&#xff0c;你可以使用smtplib库来处理SMTP协议&#xff0c;以及email库来构建邮件内容。 安装必要的库 通常情况下&#xff0c;smtplib和email库是Python标准库的一部分&#xff0c;因此不需要额外安装。如果你使用的是较旧的Python版…...

uniapp中rpx和upx的区别

在 UniApp 中&#xff0c;rpx 和 upx 是两种不同的单位&#xff0c;它们的主要区别在于适用的场景和计算方式。 ### rpx&#xff08;Responsive Pixel&#xff09; - **适用场景**&#xff1a;rpx 是一种响应式单位&#xff0c;主要用于小程序和移动端的布局。 - **计算方式**…...

CentOS 9 Stream 中查看 Python 版本并升级 Python

CentOS 9 Stream 中查看 Python 版本并升级 Python 1. 查看当前 Python 版本2. 升级 Python 版本&#xff08;1&#xff09;安装开发工具&#xff08;2&#xff09;安装必要的依赖包&#xff08;3&#xff09;下载和安装新版本的 Python&#xff08;4&#xff09;验证安装 3. …...

可以用于分割字符串的方法(python)

一、str.split(sep,maxsplit)函数&#xff08;返回列表&#xff09; sep&#xff1a;分隔符 maxsplit&#xff1a;分割次数 a"Hello world" list1a.split(" ",1) print(list1) 结果&#xff1a; [Hello, world] 二、str.rsplit(sep,maxsplit)函数&…...

【Vue】全局/局部组件使用流程(Vue2为例)

全局组件和局部组件区别 如何使用 全局组件&#xff1a;全局注册后&#xff0c;可以在任意页面中直接使用。局部组件&#xff1a;在页面中需要先导入子组件路径&#xff0c;注册组件才能使用。 适用场景 全局组件&#xff1a;适用于高频使用的组件&#xff0c;如导航栏、业…...

virtual box虚拟机误删Python3.6后导致UBUNTU18.04开机无UI界面(进不了desktop)的解决方法

最近在解决一个python引起的问题的时候&#xff0c;作者心一狠&#xff0c;删了系统自带的python3.6&#xff0c; 顺便还删了python3。导致重启后ubuntu的virtual box虚拟机无法看到UI登录界面&#xff0c;只给我了孤零零的命令行。装了很多东西不可能重装&#xff0c;无奈只能…...

虚拟线程JDK与Spring Core Reactor

两种虚拟线程对比&#xff1a;JDK vs. Spring Core Reactor性能对比 1、基于 JDK 的虚拟线程实现&#xff1a; 摘自实际代码&#xff1a; public static void withFlatMapUsingJDK() { ... var virtualThreadExecutor Executors.newThreadPerTaskExecutor( Thread .ofVirtual…...

纯 Python、Django、FastAPI、Flask、Pyramid、Jupyter、dbt 解析和差异分析

一、纯 Python 1.1 基础概念 Python 是一种高级、通用、解释型的编程语言&#xff0c;以其简洁易读的语法和丰富的标准库而闻名。“纯 Python” 在这里指的是不依赖特定的 Web 框架或数据分析工具&#xff0c;仅使用 Python 原生的功能和标准库来开发应用程序或执行任务。 1.…...

C++ NULL和nullptr

NULL实际是一个宏&#xff0c;在传统的C头文件(stddef.h)中&#xff0c;可以看到如下代码: #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif 如上是条件编译的宏定义 确保在不同编程环境下正确处理NULL的定义 C中NULL可能被定义…...

算法日记1:洛谷p2678跳石头(二分答案)

1、题目 二、题解&#xff1a; 2.1解题思路: 1.题目要求求出最小值最大&#xff0c;明显的二分答案题目&#xff0c;所以我们可以二分可以跳跃距离int l-1,rL1; 2.此时我们思考lmid和rmid的处理,当我们的check(mid)为true时候 表明我们此时的mid是符合要求的&#xff0c; 那么…...

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析 目录 PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析1. 引言2. PID控制器的基本概念2.1 PID控制器的定义2.2 PID控制器的核心思想2.3 PID控制器的应用领域 3. PID控…...