我试图将图像笔划(边框)绘制到png图像上。
(*由Photoshop预期的19px笔触图层样式结果)
,我从imagemagick论坛中找到了有用的脚本。 (imagemagick discourse)
convert source.png -background '#2a7940' -alpha background -channel A -blur 9x11 stroked.png
但是我最好的尝试离Photoshop结果还很远。
我尝试了Radius * Sigma的许多组合,但似乎是模糊技巧的最佳结果。.(-blur 9x11对此)
问题
*我可以通过Imagemagick或PIL或其他CLI工具获得更好的图像笔划吗?
*如果是这样,怎么..?
非常感谢您阅读此问题。
答案 0 :(得分:3)
当需要在使用ImageMagick创建的效果上需要干净的边缘时,可以将输入图像的大小加倍,运行操作,然后将其调整为原始输入大小。运行这些操作需要更长的时间,但结果可以得到显着改善。这是一个示例命令...
convert bomb-source.png -write mpr:in -resize 200% \
-channel A -morphology dilate disk:38 +channel \
-fill green -colorize 100 -resize 50% mpr:in -composite result.png
该命令首先读取输入图像并将副本存储在名为“ mpr:in”的内存寄存器中。
然后将输入大小调整为200%,并使用“ -morphology”将形状扩大38像素左右。在将图像缩小到其输入大小后,这将可以处理大约19个像素。
接下来,它将新形状着色为绿色,并将其大小调整为50%,恢复到原始大小。
该命令通过恢复原始图像的“ mpr:in”副本并将其组合到修改后的绿色部分上来结束。
增加大小,进行修改并在修改后减小大小称为“超级采样”。这是一种常见的技术,可以使边缘更平滑,但是却要牺牲速度。
答案 1 :(得分:2)
这可能会让您入门:
"ErrorLog": {
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "c:\\temp\\error-.log",
"rollingInterval": "Day",
"restrictedToMinimumLevel": "Error"
}
}
]
},
"AuditLog": {
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "c:\\temp\\audit-.log",
"rollingInterval": "Day",
"restrictedToMinimumLevel": "Information"
}
}
]
}
如果您的中央图像包含黑色,则最后的 var errorLogConfiguration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true)
.AddEnvironmentVariables()
.Build();
var errorSection = errorLogConfiguration.GetSection("ErrorLog");
var auditSection = errorLogConfiguration.GetSection("AuditLog");
_log = new LoggerConfiguration()
.ReadFrom
.ConfigurationSection(errorSection)
.CreateLogger();
_auditLog = new LoggerConfiguration()
.ReadFrom
.ConfigurationSection(auditSection)
.CreateLogger();
并不是最佳选择,所以我会考虑更多...
如果在单词convert bomb-source.png \
\( +clone -alpha extract -morphology edge-out disk:19 -fill green -opaque white \) \
-compose lighten -composite -transparent black result.png
后面添加-transparent black
,将得到一个名为-write stroke.png
的新文件,该文件向您显示了形态学。
答案 2 :(得分:2)
这是我使用-blur对ImageMagick中的笔划进行抗锯齿的另一种方法。
输入:
Line1 - read input
Line2 - clone it and make it fully opaque green
Line3 - clone the input, extract the alpha channel, dilate it to 19 or 20, then blur by 0x1 to antialias and use -level to remove the inner side of the blur
Line4 - put the dilated alpha into the alpha channel of the green image
Line5 - remove the temporary clones, swap the remaining two images and overlay the original over the green
Line6 - write the output
convert bomb-source.png \
\( -clone 0 -alpha off -fill green -colorize 100 \) \
\( -clone 0 -alpha extract -morphology dilate disk:20 -blur 0x1 -level 50x100% \) \
\( -clone 1,2 -compose copy_opacity -composite \) \
-delete 1,2 +swap -compose over -composite \
result.png
如果您需要更多的抗锯齿功能,请将模糊度提高到0x2。
对于ImageMagick 7,将convert替换为magick。