相关疑难解决方法(0)

加密和签名非对称加密有什么区别?

加密某些数据与签署某些数据(使用RSA)有什么区别?

它是否简单地颠倒了公钥 - 私钥的作用?

例如,我想使用我的私钥生成消息,所以只有我可能是发件人.我希望我的公钥用于阅读消息,我不在乎谁阅读它们.我希望能够加密某些信息并将其用作我的软件的产品密钥.我只关心我是唯一能够产生这些的人.我想在我的软件中包含我的公钥来解密/读取密钥的签名.我不在乎谁可以读取密钥中的数据,我只关心我是唯一可以生成它们的可验证的人.

在这种情况下签名是否有用?

encryption signing rsa license-key

252
推荐指数
9
解决办法
13万
查看次数

使用Imagemagick将GIF,PNG和JPG转换为.ICO文件

来自:JPG,致:ICO;

/usr/bin/convert -resize x16 -gravity center -crop 16x16+0+0 input.jpg \
-transparent white -colors 256 output/favicon.ico 
Run Code Online (Sandbox Code Playgroud)

这是命令行的输出.

来自:GIF,PNG To:ICO;

/usr/bin/convert -resize x16 -gravity center -crop 16x16+0+0 input.png \
-flatten -colors 256 output/favicon.ico 
Run Code Online (Sandbox Code Playgroud)

我有透明度问题.我似乎无法获得正确的代码,我尝试过-channel alpha -negate等

这会创建一个图像,当我申请该网站时,它适用于Firefox,但没有其他浏览器.IE,Chrome,Opera和Safari都出于某种原因讨厌它,它是一个简单的favicon.ico文件.我的结论是,我的命令必定是某个地方正在破裂.请帮忙?

favicon imagemagick

67
推荐指数
3
解决办法
3万
查看次数

如何在不丢失图像质量的情况下从JPG中删除exif?

我有一个PHP照片共享应用程序,其中用户上传的图像使用ImageMagick调整为各种拇指格式.

作为一种节省文件大小的看似"智能"的方式,我正在从这些拇指中删除exif信息,如下所示:

$imagick = new Imagick($image);
$imagick->stripImage();
$imagick->writeImage($image);
Run Code Online (Sandbox Code Playgroud)

这有效.它确实删除了EXIF信息,其中30KB的大拇指节省12KB并变为18KB.在单个页面上显示许多此类拇指时显着节省.

但问题是它的效果有点太好了.与非剥离版本相比,生成的图像似乎丢失了大量的颜色信息并且看起来"平坦".

根据我迄今为止的研究,我的理论是以下一个或两个都是正确的:

  • Imagick将基本颜色配置文件信息作为剥离过程的一部分丢弃
  • Imagick在保存图像时重新压缩图像,失去了质量

无论问题的原因是什么,我都在寻找一种方法来删除EXIF信息,使其不会影响图像质量或颜色本身.

这甚至可能吗?

更新:

根据Gerald Schneider的回答,我尝试在"剥离"图像之前将质量设置强制为100%:

$imagick = new Imagick($image);
$imagick->setCompression(imagick::COMPRESSION_JPEG);
$imagick->setCompressionQuality(100);
$imagick->stripImage();
$imagick->writeImage($image);
Run Code Online (Sandbox Code Playgroud)

不幸的是,问题仍然存在.下面是示例输出,尽管将质量设置为100%,但图像仍然是平坦的.

在此输入图像描述

php thumbnails imagick

19
推荐指数
1
解决办法
1万
查看次数

从图像中清除元数据的简单方法?

我正在为处理图像处理的公司项目开发一项服务,其中一种方法应该从传递给它的图像中清除元数据。

认为我目前的实施有效,但我不确定它是否会影响图像质量,或者是否有更好的方法来处理此任务。如果你知道更好的方法来做到这一点,你能告诉我吗?

这是有问题的方法:

public byte[] CleanMetadata(byte[] data)
{
    Image image;

    if (tryGetImageFromBytes(data, out image))
    {
        Bitmap bitmap = new Bitmap(image);

        using (var graphics = Graphics.FromImage(bitmap))
        {
            graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
            graphics.CompositingMode = CompositingMode.SourceCopy;
            graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;

            graphics.DrawImage(image, new Point(0, 0));
        }

        ImageConverter converter = new ImageConverter();

        return (byte[])converter.ConvertTo(image, typeof(byte[]));
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

并且,作为参考,该tryGetImageFromBytes方法:

private bool tryGetImageFromBytes(byte[] data, out Image image)
{
    try
    {
        using (var ms = new MemoryStream(data))
        {
            image = Image.FromStream(ms);
        }
    }
    catch …
Run Code Online (Sandbox Code Playgroud)

c# asp.net system.drawing metadata image-processing

1
推荐指数
1
解决办法
9566
查看次数