Marco Nie - 2020年8月 https://blog.niekun.net/2020/08/ zh-CN you are the company you keep... Tue, 18 Aug 2020 12:09:00 +0800 Tue, 18 Aug 2020 12:09:00 +0800 自由填充 Pattern in Photoshop https://blog.niekun.net/archives/1720.html https://blog.niekun.net/archives/1720.html Tue, 18 Aug 2020 12:09:00 +0800 admin 1.jpg

对于单个 pattern 模型,如果想要在 layer 内以随机的角度或大小填充来实现更加自然的效果可以使用 script 脚本方便的实现。

我们从如何定一个 pattern 开始,下面是一张 1 美元图片:
2.jpg

使用 object selection tool 快速将主体选出来:
3.jpg

选区边沿如果有多余的或者缺失的部分,通过 按住 shift 和 alt 键来增加/减去选区:
5.jpg

点击添加图层蒙版,边沿如果需要调整,可以使用画笔工具来进一步修整蒙版。如果蒙版边沿有锯齿,可以双击蒙版打开属性框,调整 smooth 和 contract 来优化蒙版:
6.jpg

使用选区工具框出一个矩形框包含我们的主体:
7.jpg

选择 edit - define pattern:
8.jpg

定义一个名称,点击 ok:
9.jpg

新建图层,快捷键 shift backspace/shift delete 调出填充框:
10.jpg

content 选择 pattern:
11.jpg

custom pattern 里选中我们刚才新建的模型:
12.jpg

script 前打勾,然后右侧菜单里选择 random fill:
13.jpg

点击 ok 后进入调整菜单,首先将 下面的 color randomness 设为 0 避免图形的染色改变,brightness randomness 设置为 0.02 左右使亮度轻微可以随机改变,形成层次感:
14.jpg

将 density 设置为最大 10,将 minimum/maximum scale factor 设置为 1,这样 pattern 会以 1:1 比例显示:
15.jpg

将 rotate pattern 打勾,这样模型会随机旋转:
16.jpg

设置完成后点击 ok,可以看到效果:
17.jpg

还可以做一些优化来使层叠效果更加真实,过程就是降低 density 和 scale,添加图层阴影效果。

新建图层,使用上面的方法填充 pattern,在设置中将 density 设置为 9,scale 设置为 0.25:
18.jpg

确认后可以看到效果,单个图形变小,填充密度变小:
19.jpg

我们给图层添加阴影效果,双击图层打开 layer style,下方点击添加阴影:
20.jpg

再次新建图层,使用上面图层的填充设置填充 pattern,可以将空缺的部分进一步补充完整:
21.jpg

按住 alt 键拖拽刚才的阴影特效到新图层,可以快速复制效果:
22.jpg

可以看到还是有空白的区域没有填充完整,继续重复上面的步骤,建立多个图层,直到完全充满整个区域为止,最终效果如下:
23.jpg

以上就是使用 script 来实现 pattern 自由填充的过程。

]]>
0 https://blog.niekun.net/archives/1720.html#comments https://blog.niekun.net/feed/archives/1720.html
argparse and struct in python https://blog.niekun.net/archives/1718.html https://blog.niekun.net/archives/1718.html Fri, 14 Aug 2020 11:20:39 +0800 admin https://docs.python.org/3/library/argparse.html
https://docs.python.org/3/library/struct.html

]]>
0 https://blog.niekun.net/archives/1718.html#comments https://blog.niekun.net/feed/archives/1718.html
眼睛进阶处理 in Photoshop https://blog.niekun.net/archives/1690.html https://blog.niekun.net/archives/1690.html Fri, 14 Aug 2020 11:16:27 +0800 admin 26.jpg
在人像照片中,一双炯炯有神的眼睛会让照片整体突出,下面我们来尝试通过提升亮度,增加细节等过程来实现。

下图是我们的原图:
1.jpg

放大眼睛细节:
2.jpg

原图已经很好了,很清晰。下面我们进行调整。

强化亮部细节

需要提亮的部分是光源点的对面,再此图中就是眼睛光斑的下方,新建图层,画笔工具画圆:
3.jpg

擦除多余部分,笔刷选择软笔刷,可以先降低不透明度来看到背景:
4.jpg

高斯模糊使过度自然:
5.jpg
6.jpg

混合模式改为 overlay 实现提亮:
7.jpg

blend option 去掉影响阴影部分:
8.jpg

如果想要加强效果可以再次复制图层,调整不透明度。

增加高光点

新建曲线图层,拉高曲线:
9.jpg

ctrl I 反转图层蒙版,白色画笔工具软笔刷在瞳孔下方点击一下:
10.jpg

可以看到效果太强了,调低不透明度到合适:
11.jpg

增加明暗细节

新建曲线图层,提高曲线,反转图层蒙版:
12.jpg

白色画笔工具使用软笔刷沿着瞳孔在亮部区域画出射线,这一步注意如果有数位板来画的话会更好:
13.jpg

降低不透明度到合适:
14.jpg

下面增加暗部细节,再次新建曲线,然后降低曲线,反转蒙版:
15.jpg

同样的方法画出射线:
16.jpg

降低不透明度:
17.jpg

眼白清理

首先清理红血丝,新建图层,选择修复画笔工具混合模式设置为 screen,这样可以只处理暗部血丝:
18.jpg
19.jpg

按 alt 键采样眼白,涂抹血丝区域:
20.jpg

然后进行 dogding and burning 明暗调节,首先建立 soild color 观察图层,混合模式改为 color 来只显示亮度情况:
21.jpg

新建图层,混合模式改为 soft light,选择笔刷工具软笔刷流量改为 1,快捷键 D 恢复颜色为黑/白,根据实际用白色笔刷涂抹暗部,黑色笔刷涂抹过亮部分:
22.jpg

然后修复亮度调整后的颜色变化,新建图层,混合模式改为 color,快捷键 I 拾取眼白正常部分的颜色,然后在新图层上涂抹出需要修复的区域:
23.jpg

复制效果

将亮部细节处理/高光点/明暗细节处理部分建立分组然后复制一份,安住 ctrl 拖动分组到另一只眼睛部分,可以配合蒙版清理多余部分:
24.jpg

可以使用同样的方法清理另一只眼睛的眼白部分最终效果如下:
25.jpg

]]>
1 https://blog.niekun.net/archives/1690.html#comments https://blog.niekun.net/feed/archives/1690.html
string <-> byte in python https://blog.niekun.net/archives/1688.html https://blog.niekun.net/archives/1688.html Wed, 12 Aug 2020 14:08:00 +0800 admin To transform a unicode string to a byte string in Python do this:

>>> 'foo'.encode('utf_8')
b'foo'

To transform a byte string to a unicode string:

>>> b'foo'.decode('utf_8')
'foo'

  1. To convert a string to bytes.

    data = ""               #string
    data = "".encode()      #bytes
    data = b""              #bytes
  2. To convert bytes to a String.

    data = b""              #bytes
    data = b"".decode()     #string
    data = str(b"")         #string
]]>
0 https://blog.niekun.net/archives/1688.html#comments https://blog.niekun.net/feed/archives/1688.html
winreg 操作 Windows 注册表 in python https://blog.niekun.net/archives/1685.html https://blog.niekun.net/archives/1685.html Wed, 12 Aug 2020 13:56:00 +0800 admin https://docs.python.org/3/library/winreg.html#
https://stackoverflow.com/questions/15128225/python-script-to-read-and-write-a-path-to-registry

import winreg

REG_PATH = r"Control Panel\Mouse"

def set_reg(name, value):
    try:
        winreg.CreateKey(winreg.HKEY_CURRENT_USER, REG_PATH)
        registry_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, REG_PATH, 0, 
                                       winreg.KEY_WRITE)
        winreg.SetValueEx(registry_key, name, 0, winreg.REG_SZ, value)
        winreg.CloseKey(registry_key)
        return True
    except WindowsError:
        return False

def get_reg(name):
    try:
        registry_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, REG_PATH, 0,
                                       winreg.KEY_READ)
        value, regtype = winreg.QueryValueEx(registry_key, name)
        winreg.CloseKey(registry_key)
        return value
    except WindowsError:
        return None

#Example MouseSensitivity
#Read value 
print (get_reg('MouseSensitivity'))

#Set Value 1/20 (will just write the value to reg, the changed mouse val requires a win re-log to apply*)
set_reg('MouseSensitivity', str(10))

#*For instant apply of SystemParameters like the mouse speed on-write, you can use win32gui/SPI
#http://docs.activestate.com/activepython/3.4/pywin32/win32gui__SystemParametersInfo_meth.html
]]>
0 https://blog.niekun.net/archives/1685.html#comments https://blog.niekun.net/feed/archives/1685.html
使用 opencv 处理图像 https://blog.niekun.net/archives/1684.html https://blog.niekun.net/archives/1684.html Fri, 07 Aug 2020 11:37:51 +0800 admin 安装:https://pypi.org/project/opencv-python/
使用:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_table_of_contents_setup/py_table_of_contents_setup.html
示例:https://www.askaswiss.com/2016/01/how-to-create-pencil-sketch-opencv-python.html
打包 exe:https://pypi.org/project/auto-py-to-exe/

]]>
0 https://blog.niekun.net/archives/1684.html#comments https://blog.niekun.net/feed/archives/1684.html