Marco Nie - 2022年3月 https://blog.niekun.net/2022/03/ you are the company you keep... PHP频率分离处理皮肤 in Photoshop https://blog.niekun.net/archives/2502.html 2022-03-31T14:23:00+08:00 频率分离在处理人像或需要平滑表面的地方非常有效,在之前的教程中介绍过频率分离的方法,下面介绍在实际应用中,在频率分离后如何进行下一步处理。Photoshop 皮肤处理进阶通过频率分离修复褶皱衣服 in Photoshop频率分离 action:PiX - Frequency Separation.atnPHP 表示:patching修补,healing修复,polishing抛光关于频率分离的原理和过程请参考上面的链接,下面直接使用 action 快速完成。原图如下:在分离图像前,我们首先简单处理皮肤明显的痘痕等瑕疵部分,使用污点修复工具即可,新建一个图层,选择 healing brush tool:alt 选取痘痘周边皮肤,点击修复所有的痘痘,注意 sample 选择 current and below:我们通过 action 快速分离图像,我们图像是 8 bit 模式的所以使用 FS 8bit动作(image - mode 可以查看当前图片模式):执行 action 过程中弹出手动设置高斯模糊值,先拉到最小,然后一点点调大直到皮肤细节消失:action 会自动创建好分离图像图层:下面进行 PHP 第一步 patching,将皮肤上大块的色差区域修复,使用了 patch tool。首先关闭上面的 texture 图层,然后复制 color 图层命名为 patching:使用 patch tool 将皮肤上有明显下次和色差的部分修复:处理完成后打开 texture 图层查看效果:然后第二部 healing,也就是通过 heal tool 修复一些小瑕疵部分,复制 patching 图层,使用 heal tool 进行下一步修复,同样的需要临时关闭 texture 图层。例如我们通过 heal tool 修复额头多余的头发和面部细微部分的色差区域:处理完成后打开 texture 图层查看效果:第三步 polishing,也就是对皮肤高光阴影的平滑处理,让整体光线过渡更加均匀,复制 healing 图层重命名为 polishing,同样的暂时关闭 texture 图层。这里使用笔刷工具,流量调到 2 左右即可:我们先处理嘴唇的阴影部分,按住 alt 点击阴影部分选取颜色,然后在需要过渡的地方进行涂抹:然后鼻子上的亮度分布我们使用同样的方法进行调整,让光线更加平顺:根据情况调整其他地方的光线,完成后打开 texture 图层查看效果:最终效果对比如下: 通过频率分离修复褶皱衣服 in Photoshop https://blog.niekun.net/archives/2480.html 2022-03-29T17:07:00+08:00 之前介绍过通过高低频率分离可以处理皮肤柔化,它可以方便的单独处理颜色和反差部分。下面介绍通过高低频分离将褶皱的衣服平顺化,同时保持其原有的真实过渡部分。用到的技术主要有:高斯模糊、apply image、linear light、mixer brush tool、patch tool原图如下,可以看到衣服褶皱很明显:首先复制两个图层,分别命名为 color 和 texture:先临时关闭 texture 图层,将 color 图层执行高斯模糊:根据实际情况,调节滑块将主体的布料细节等杂乱色彩柔化,最终基本看不出明显细节:然后打开 texture 图层,执行 image - apply image。layer 选择 下方的 color 图层,混合模式选择 subtract,scale 选择 2,offset 设置为 128,上面设置的意思就是将 texture 图层每个像素都减去下方的 color 图层,将结果减为 0 的部分填充为 50度灰色,scale 影响轮廓范围:然后将 texture 混合模式改为 linear light,我们会发现现在显示的图像和原图是一样的:以上我们就将原图拆解为 color 和 texture 两部分,可以对其进行分别调整。下面我们开始处理褶皱问题,关闭 texture 图层,然后使用 mixer brush tool 将 color 图层颜色分布均匀化处理,这个笔刷可以选取周围图片某个地方的像素,然后在其他地方可以涂抹出相似的颜色。由于需要使用色彩选取功能,首先我们确保选取颜色的时候是 33 或 55 范围而不是单个像素。点击色彩选取工具,将上面的设置为合适数据:然后点击 mixer brush tool,在上面的默认数据基础上将流量调到30左右,将平滑处理降到0:然后使用柔边笔刷,选择一个有褶皱的区域,点击 alt 选取周边一个颜色,开始涂抹需要处理的区域,处理过程中注意不同区域需要尽量选取其周边颜色进行涂抹,这样过度更加自然。涂抹过程中可以打开背景图层观察效果:涂抹完成后打开 texture 查看效果:可以看到很明显的效果,大部分的褶皱都没有了,但是还是可以看到一些线条:但是在 color 图层却不明显,这些线条就是存在于 texture 图层的高频部分,需要在 texture 图层处理它们。使用的方法就是通过污点修复工具将这些线条去掉,选中 texture 图层,这里我使用 patch tool:选取一个需要去除的线条,拖拽到其他完好区域,查看效果:同样的步骤处理其他所有区域,最终效果如下:以上就完成了折痕的处理。 彩图转黑白 in Photoshop https://blog.niekun.net/archives/2472.html 2022-03-28T14:04:00+08:00 黑白图片在某些场景下有其独特的风格,在人像摄影中可以体现出一种另类的雕塑感,下面通过实例介绍如何从一个彩色图片处理为一张黑白效果。使用的工具主要是 gradient map 和 camera raw。下面是原始图片:首先在原图上方建立 gradient map 图层,gradient map 的作用是根据图像的亮度分布进行颜色替换:首先将下方的 method 改为 classic,这样过渡效果更加平顺一些:默认是一个反色效果渐变,点击渐变条,修改其属性为左边黑色右边白色:下面我们增加黑白色差效果,调节左侧下方滑块可以使得黑色区域更黑,调节右侧下方滑块可以使得白色区域更白,调节中间滑块可以调节黑白区域范围:调节到合适效果后确认即可,这样我们初步就有了一个效果。下面为了让背景更加黑,我们通过选取提取出背景,创建一个纯黑背景。选中图像图层,选区工具下选中 select and mask:点击 select subject 可以自动选中主体:点击 color aware 和 shift edge 调节选区边沿:确认后可以获取到主体的选取,创建一个 solid color 黑色图层,选中蒙版,ctrl I 反转选区即可:放大我们可以发现主体边沿和背景没有完美的融合,这时可以通过复制刚才的 gradient map 图层强化黑白效果,然后通过笔刷工具将复制的图层只保留主体边沿部分,注意使用笔刷的时候不透明度调节稍微低一些:基本效果已经可以了,下面调节细节部分,首先眼睛需要提亮,新建 curves 图层,提亮曲线后反转蒙版,使用笔刷工具涂抹出眼睛的亮度:黑白图片效果一般在提高锐度的时候会更加具有特点,下面我们通过 camera raw 来做调整。首先快捷键 ctrl shift alt E 盖印图层,然后转换为 smart object 方便后期返回来调整参数:然后点击 filter - camera raw filter 进入编辑模式。为了更加强烈的反差,我首先调节了亮度参数:然后就是锐化的重点 - 提高 clarity 清晰度参数,注意不要调的过高而失真:完成后保存返回 Photoshop,适当调节不透明度使图片更加自然:最终效果如下: 安装 phpMyAdmin 管理 MySQL https://blog.niekun.net/archives/2457.html 2022-03-28T09:31:00+08:00 phpMyAdmin 是一个 php 的免费工具,用来在 web 端管理 MySQL 数据库。它支持大部分的 MySQL 功能,比如:创建数据库,修改数据,管理用户权限,导入导出数据等。官方网站:https://www.phpmyadmin.net/GitHub 主页:https://github.com/phpmyadmin/phpmyadmin下面介绍在 Ubuntu 20.04 的安装及使用过程。安装首先确保已经安装好了 MySQL 和 php:apt install mysql-server php php-fpm php-mysql 然后安装 phpMyAdmin:apt install phpmyadmin 安装过程中会提示创建一个 mysql 管理账户 phpmyadmin,一般直接确认即可,然后设置账户密码。如果这一步跳过了创建账户,后期需要手动修改配置文件或手动创建一个 phpmyadmin 管理账户,否则登录可能会报错。配置 nginx安装完成后需要配置代理服务器,我使用的是 nginx,下面是 nginx 的配置文件部分: location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; include fastcgi-php.conf; } }使用配置完成后就可以登陆 phpmyadmin 页面了,登录对应的 mysql 管理账户,可以是安装 phpmyadmin 时创建的账户也可以是我们之前使用 mysql 自己的账户:如果登录后发现下面有报错信息:Access denied for user 'phpmyadmin'@'localhost' (using password: NO) 可能就是安装的时候跳过了创建 phpmyadmin MySQL 账户的步骤,这里我们可以在终端手动创建报错信息中提示的用户名或者直接修改配置文件中定义的 phpmyadmin 管理账户。修改 /etc/phpmyadmin/config.inc.php,找到如下字段:$cfg['Servers'][$i]['controluser'] = 'user'; $cfg['Servers'][$i]['controlpass'] = 'password';将上面的用户名密码修改为 MySQL 中存在的账户即可。刷新页面之后应该就没有报错了。手动创建 MySQL 用户可以参考教程:https://blog.niekun.net/archives/23.html#title-3然后我们就可以正常使用 phpmyadmin 管理页面了,这里可以查看 database,导入导出数据等。参考链接phpMyAdmin ERROR: mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO) 使用 rclone 管理网盘文件 https://blog.niekun.net/archives/2454.html 2022-03-14T11:35:31+08:00 之前介绍了通过 gdrive 在服务器上管理 Google drive 文件,实现服务器数据备份自动上传功能。最近发现有一个新的开源项目 rclone 支持更多的网盘,同时更新迭代速度也更快。GitHub 主页:https://github.com/rclone/rclone他支持的网盘列表:https://rclone.org/overview/下面介绍它的安装使用方法。安装Linux 下一键安装命令:curl https://rclone.org/install.sh | sudo bash macos 通过 brew 安装:brew install rclone 配置首次运行执行初始化配置:rclone config 根据提示创建新 remote:No remotes found - make a new one n) New remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config n/r/c/s/q> n然后设置此连接名称,后续就是通过这个名称来操作不同的网盘的:name> remote 下一步选择网盘类型,如果是 Google drive 选择 16:Type of storage to configure. Choose a number from below, or type in your own value [snip] 16 / Google Drive \ "drive" [snip] Storage> 16下面的 id 和 secret 都默认回车即可:Google Application Client Id - leave blank normally. client_id> Google Application Client Secret - leave blank normally. client_secret>下面设置可访问全部网盘文件,选择 1:Scope that rclone should use when requesting access from drive. Choose a number from below, or type in your own value 1 / Full access all files, excluding Application Data Folder. \ "drive" 2 / Read-only access to file metadata and file contents. \ "drive.readonly" / Access to files created by rclone only. 3 | These are visible in the drive website. | File authorization is revoked when the user deauthorizes the app. \ "drive.file" / Allows read and write access to the Application Data folder. 4 | This is not visible in the drive website. \ "drive.appfolder" / Allows read-only access to file metadata but 5 | does not allow any access to read or download file content. \ "drive.metadata.readonly" scope> 1下面几步都默认回车即可。注意到了 use auto config 的时候要选择 No,因为我们是远程 ssh 访问的服务器:Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine or Y didn't work y) Yes n) No y/n> n下面会返回一个链接,复制链接到浏览器后,登录 google 账户给 rclone 授权。授权完成后会返回一个字符串码,粘贴回终端。后续几步默认回车即可,最后输入 q 退出 config。使用配置完成后我们就可以使用了,下面介绍一些基本语法。下面示例中网盘配置名称为 remote。列出网盘的所有文件:rclone ls remote: 列出一个文件夹内的所有文件:rclone ls remote:abc 创建一个文件夹:rclone mkdir remote:abc rclone mkdir remote:abc/def 删除网盘内一个文件:rclone delete remote:abc/123.txt 删除一个文件夹:rclone rmdir remote:abc 复制本地一个文件到网盘:rclone copy 123.txt remote:abc 更多可用命令可以参考官方文档:https://rclone.org/docs/#subcommands Ubuntu 18.04 升级 Ubuntu 20.04 记录 https://blog.niekun.net/archives/2451.html 2022-03-12T15:32:00+08:00 昨天决定把服务器的系统从 Ubuntu 18.04 升级到 Ubuntu 20.04,其中经历了不少问题点,下面记录下处理过程。首先就是升级当前系统所有包到最新:apt update && apt upgrade -y apt autoremove && apt purge 然后安装升级需要的管理包,不过一般系统都是自带的:apt install update-manager-core 然后就可以更新系统了:do-release-upgrade 标准流程就是以上几步,但是在最后一步的时候问题就开始出现了。在执行升级命令后出现报警:Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings 在查询一些资料后,原来是 ssl certificates 验证问题,系统无法鉴定上面的 https 链接证书是否有效就返回错误了。这个问题也是我这个系统的一个遗留问题,每次执行 wget 或 curl 下载东西的时候就会提示证书报错,需要通过附加指令跳过证书验证,但这就会存在安全问题了。解决方法就是更新本地证书库后添加 SSL_CERT_DIR 环境变量指向系统证书目录:update-ca-certificates --verbose --fresh export SSL_CERT_DIR=/etc/ssl/certs 为了方便以后使用,将环境变量添加到 ~/.bashrc 文件中。这样就解决了 https 链接证书验证问题。然后先删除之前执行升级命令后错误内容:rm /var/lib/ubuntu-release-upgrader/release-upgrade-available /usr/lib/ubuntu-release-upgrader/release-upgrade-motd 之后再次执行升级命令 do-release-upgrade。这时候报错信息变化了,这时候提示的是 python3 有问题,原因是我当前系统使用的是自己编译的 python 3.8,路径在 /opt 目录下。当时将系统软链接 /usr/bin/python 和 /usr/bin/python3 都指向了自己安装的 python,需要将他们恢复到指向系统内置的 python 程序。下面需要介绍下系统内 python 主程序和软链接的分布:python2 主应用程序为 /usr/bin/python2.7 python3 主应用程序为 /usr/bin/python3.6 pip 主程序为 /usr/bin/pip pip3 主程序为 /usr/bin/pip3下面是默认的软链接及指向的应用程序:/usr/bin/python -> /usr/bin/python2.7 /usr/bin/python2 -> /usr/bin/python2.7 /usr/bin/python3 -> /usr/bin/python3.6 /usr/local/bin/pip -> /usr/bin/pip /usr/local/bin/pip3 -> /usr/bin/pip3如果你修改过这些软链接到自己的 python 版本,就需要修改回来:ln -sf /usr/bin/python2.7 /usr/bin/python ln -sf /usr/bin/python2.7 /usr/bin/python2 ln -sf /usr/bin/python3.6 /usr/bin/python3 ln -sf /usr/bin/pip /usr/local/bin/pip ln -sf /usr/bin/pip3 /usr/local/bin/pip3 ldconfig以上问题都处理完后,再次执行升级命令,一切都正常了。 解决 wget 下载时 certificates 证书报错问题 https://blog.niekun.net/archives/2448.html 2022-03-11T16:48:00+08:00 我的服务器上在使用 wget 或者 curl 等网络工具时,每次都提示类似下面的报错:ERROR: cannot verify github.com's certificate, issued by ‘CN=DigiCert High Assurance TLS Hybrid ECC SHA256 2020 CA1,O=DigiCert\\, Inc.,C=US’: Unable to locally verify the issuer's authority. To connect to github.com insecurely, use `--no-check-certificate'.需要通过参数跳过证书检查,但是这样又有了安全风险。首先尝试更新本地证书文件:update-ca-certificates --verbose --fresh发现问题没有解决,原来是系统缺少了一个指向证书路径 /etc/ssl/certs 的环境变量,尝试添加:export SSL_CERT_DIR=/etc/ssl/certs再次测试 wget 命令,发现问题的确没有了。可以将上面的环境变量添加到系统 shell 配置文件中,我这里是 ~/.bashrc,添加后刷新一下即可:source ~/.bashrc在更新 Ubuntu18.04 到 20.04 时,也是这个问题导致的报错。