所以我设计了编辑照片的几个方案中python
使用PIL
,其中之一是将图像转换为灰度图像(我避免因使用任何功能PIL
).
我已经采用的算法是简单的:对于每个像素(色彩深度为24),我已经计算出的平均R
,G
和B
值,并设置RGB值到该平均.
我的程序生成的灰度图像似乎很准确,但我想知道我是否使用了正确的算法,并且我遇到了一个问题的答案,似乎"正确"的算法是计算的0.299 R + 0.587 G + 0.114 B
.
我决定将我的程序与这个算法进行比较.我使用我的程序生成了一个灰度图像,另一个(使用相同的输入)来自一个网站(谷歌的最高结果)'image to grayscale'
.
在我的肉眼看来,它们似乎完全相同,如果有任何变化,我看不到它.但是,我决定使用这个网站(谷歌的最佳结果'compare two images online'
)来比较我的灰度图像.事实证明,在像素的深处,它们有轻微的变化,但没有一个人乍一看是可感知的(差异可以被发现,但通常只有当图像相互叠加或在几毫秒之间切换时) .
我的问题(第一个是主要问题):
我的关键代码(如果需要):
def greyScale(pixelTuple):
return tuple([round(sum(pixelTuple) / 3)] * 3)
Run Code Online (Sandbox Code Playgroud)
'正确'的算法(似乎重量很重):
def greyScale(pixelTuple):
return tuple([round(0.299 * pixelTuple[0] + 0.587 * pixelTuple[1] + 0.114 * pixelTuple[2])] * 3)
Run Code Online (Sandbox Code Playgroud)
当在线比较灰度图像时(突出显示红色是差异,使用10%的模糊):
尽管上面突出显示了像素的变化,但上面的灰度图像看起来几乎完全相同(至少对我而言).
另外,关于我的第一个问题,如果有人感兴趣, …
python algorithm image-comparison image-conversion python-imaging-library
我在.Net中使用System.Drawing.Image进行从png到jpeg的简单转换.我基本上只使用这两行代码:
Image img = Image.FromFile(filename);
img.Save(newFilename, System.Drawing.Imaging.ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)
它工作正常,除了png文件由于alpha通道包含透明度.在这种情况下,转换的jpeg具有黑色背景.有没有办法让背景变白?
我有PDF需要转换为图像.我已经安装了Imagemagick.我有一个名为a.pdf的PDF,我可以在文件夹C:\ Convert \中打开(它没有损坏)
从命令行我正在尝试
C:\Convert>convert a.pdf a.jpg
Run Code Online (Sandbox Code Playgroud)
我收到了错误.
convert.exe: FailedToExecuteCommand `"gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -
dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEV
ICE=pamcmyk32" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" -dUseCIEColor
"-sOutputFile=C:/Users/MNALDO~1.COR/AppData/Local/Temp/magick-3704HYGOqqIK5rhI%d
" "-fC:/Users//MNALDO~1.COR/AppData/Local/Temp/magick-3704vK6aHo7Ju9WO" "-fC:/Use
rs//MNALDO~1.COR/AppData/Local/Temp/magick-3704GQSF9kK8WAw6"' (The system cannot
find the file specified.
) @ error/delegate.c/ExternalDelegateCommand/480.
convert.exe: PDFDelegateFailed `The system cannot find the file specified.
' @ error/pdf.c/ReadPDFImage/797.
convert.exe: no images defined `a.jpg' @ error/convert.c/ConvertImageCommand/323
0.
Run Code Online (Sandbox Code Playgroud) 是否有任何简单(可编写脚本)的方法将带有矢量图像的PDF转换为带有光栅图像的PDF?换句话说,我想用完全相同(非光栅化)的文本生成PDF,但每个矢量图像都用光栅化版本替换.
我偶尔会在我的Kindle上阅读有关技术文章的PDF文件,并且发现直接阅读PDF文件令人沮丧.值得庆幸的是,亚马逊将PDF 自动转换为Kindle格式,可以很好地回收我尝试过的大多数PDF文本部分.然而,虽然光栅图像似乎使转换过程变得很好,但矢量图像却被严重损坏.如果我可以轻松转换PDF以便所有矢量图像都被光栅化,那将会很棒.
我对任何可能的解决方案感兴趣,但基于Linux或Windows的解决方案更可取.
pdf file-conversion vector-graphics rasterizing image-conversion
如何将BufferedImage转换为ImageIcon?
我找不到任何关于此的文件.
我有一个要求,用户将上传他们的图像,我必须将其转换为某些东西,并将其发送到.Net REStful服务.我是棱角分明的新手.请有人帮忙
我有这张图片(我在 SGS 9 plus 上拍摄的照片):未压缩的 JPG 图像。它的大小为 4032 x 3024,重量约为 3MB。我用TinyJPG Compressor压缩了它,它的重量是1.3MB。对于 PNG 图像,我使用了Online-Convert,我看到 webp 图像甚至比使用TinyPNG压缩的图像小得多。我期待类似的东西,尤其是我读了一篇文章JPG 到 WebP - 比较压缩大小,其中 WEBP 比压缩的 JPG 小得多。但是当我在各种在线图片转换工具中将我的JPG转换为WEBP格式时,我看到1.5-2MB大小,所以文件比我压缩的 JPG 大。我错过了什么吗?WEBP应该不会比压缩后的JPG小很多吧?预先感谢您的每一个答案。
是否有任何实用程序可用于将图像转换为ASCII然后在我的终端中打印?我找了一个但似乎找不到任何东西.
使用pdfbox会显示错误:
import java.awt
import javax`
Run Code Online (Sandbox Code Playgroud)
基于以下代码:
imageType = BufferedImage.TYPE_INT_ARGB; //need to specifies java.awt
String[] formats = ImageIO.getReaderFormatNames(); //need to specifies javax
Run Code Online (Sandbox Code Playgroud)