标签: imagemagick.net

扩展ImageMagickNet

我正在尝试为ImageMagickNet类添加自定义函数.它应该使用IsSimilarImage magickImageMagick.NET项目中的方法,但我对是否必须通过Magick ++路由此方法感到困惑,因为.NET端可用的任何功能都源于Magick ++.

.net vb.net imagemagick imagemagick.net magick++

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

在 C# 中使用 imagick 将 .HEIC 转换为 JPEG

我在将 heic 文件转换为 jpeg 时遇到问题

我已经尝试过在线搜索,我可以找到如何写入文件夹,但不知道如何获取转换后的文件的字节[],以便我可以保存它

       byte[] file = null;
        file = Convert.FromBase64String(dto.File);

        //Convert HEIC/HEIF to JPF
        if (extension == "HEIC" || extension == "HEIF")
        {
          try
          {
           using (MagickImageCollection images = new MagickImageCollection())
            {
              images.Read(file);
              using (IMagickImage vertical = images.AppendVertically())
              {
                var imgname = filename + ".jpeg";
                vertical.Format = MagickFormat.Jpeg;
                vertical.Density = new Density(300);
                vertical.Write(imgname);
                extension = "jpeg";
            }
            }
          }
          catch (Exception ex)
          {
            Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
          }
        }
            documentId = Service.AddSupportingDocument(file, extension , userName);
Run Code Online (Sandbox Code Playgroud)

我无法获取输出文件,它只是一个字符串

c# imagick imagemagick.net

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

ImageMagick采样系数

我一直在使用ImageMagick命令行工具对图像进行jpeg压缩。但是,我试图了解采样因子的作用。它说采样因子用于指定块大小,即8x8或16x16。但是,如果省略此参数,则找不到使用的默认值。

另外,我尝试使用以下命令来获取图像的属性:

确定-verbose image.jpg

它显示采样系数值为1x1、1x1、1x1。这是什么意思?应该是8x8或16x16或32x32。

有人可以给我一个想法,在哪里找到这些细节吗?

imagemagick imagemagick.net node-imagemagick imagemagick-convert

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

使用ImageMagick.NET和C#调整裁剪大小

我有一个大图像,我想调整到230×320(确切).我希望系统在不丢失宽高比的情况下调整大小.即,如果图像是460×650,它应首先调整为230×325,然后裁剪额外的5个像素的高度.

我正在做以下事情:

ImageMagickNET.Geometry geo = new ImageMagickNET.Geometry("230x320>");
img.Resize(geo);
Run Code Online (Sandbox Code Playgroud)

但图像没有调整到230×320的确切大小.

我在C#4.0中使用ImageMagick.NET.

imagemagick imagemagick.net

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

无法在DLL'Magick.NET-Q8-x64.Native.dll'中找到名为'Environment_SetEnv'的入口点

升级到最新的ImageMagick/Magick.NET(7.0.2.901),它在本地构建并运行良好,但在服务器上出现此错误.

无法在DLL'Magick.NET-Q8-x64.Native.dll'中找到名为"Environment_SetEnv"的入口点.

似乎是一个新问题.从这里的变化来看:

https://magick.codeplex.com/discussions/650746

不再需要VC运行时,因此安装它们不会成为问题 - 而且,我已经为库的先前版本安装了2008年,2012年和2015年的VC运行时,这些工作正常.

IIS中的Windows Server 2008 64位,64位.Net 4.

当前的解决方法是回滚到7.0.0.22,它运行没有错误.

Install-Package Magick.NET-Q8-AnyCPU -Version 7.0.0.22
Run Code Online (Sandbox Code Playgroud)

ImageMagick.X64.Environment_SetEnv(IntPtr name,IntPtr value)

imagemagick.net magick.net

5
推荐指数
2
解决办法
1219
查看次数

使用 ImageMagick.Net 将 JPG 转换为背景透明的 PNG

我需要将 JPG 图像转换为 PNG 并将其白色背景更改为透明。我正在使用 ImageMagick.NET,并且发现以下 ImageMagick 命令应该可以实现我想要实现的目标:

convert image.jpg -fuzz XX% -transparent white result.png
Run Code Online (Sandbox Code Playgroud)

我尝试将其转换为 c#,但我得到的只是一个带有白色背景的 png 图像。我的代码片段:

using (var img = new MagickImage("image.jpg"))
{
     img.Format = MagickFormat.Png;
     img.BackgroundColor = MagickColors.White;
     img.ColorFuzz = new Percentage(10);
     img.BackgroundColor = MagickColors.None;
     img.Write("image.png");
}
Run Code Online (Sandbox Code Playgroud)

任何形式的帮助将不胜感激。谢谢你!!

c# imagemagick imagemagick.net magick.net uwp

5
推荐指数
2
解决办法
6895
查看次数

如何使用 Magick.NET 将动画 webp 图像转换为动画 gif?

GDI+ 和 System.Drawing 不支持 WebP 图像。为了在我的 C# Windows 桌面应用程序中处理它们,我使用 Magick.NET 将它们转换为受支持的 Gif 图像。这很有效,除非 WebP 图像是动画的。我用来测试动画图像转换的代码如下:

    public void TestConvertImageType() {
        using (var animatedWebP = new MagickImage("animated.webp")) {
            animatedWebP.Write("animated-generated.gif", MagickFormat.Gif);
        }
        using (var animatedGif = new MagickImage("animated.gif")) {
            animatedGif.Write("animated-generated.webp", MagickFormat.WebP);
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果拖到 Chrome 浏览器中,animated.webp 和animated.gif 都会播放。但是,生成的图像都不会播放。在 Chrome 中,它们只是显示动画源图像的第一帧。

使用 ImageMagick 的命令行版本,我可以使用以下脚本将animated.webp 和animated.gif 转换为可播放的图像:

magick animated.webp animated-generated.gif
magick animated.gif animated-generated.webp
Run Code Online (Sandbox Code Playgroud)

所以我知道ImageMagick支持动画图像的转换。

我安装的 Magick.NET 版本是 Magick.NET-Q8-AnyCPU 版本 8.5.0
我安装的 ImageMagick 版本是 ImageMagick-7.1.0-Q8
我的 C# 应用程序正在使用 .NET Framework 4.8

谁能告诉我我的 C# 应用程序需要做什么才能从动画 webp 生成可播放的动画 …

c# animation imagemagick imagemagick.net

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

带有 Visual Studio 的 ImageMagick

我正在尝试在 Visual Studio 2010 中编写一个示例 ImageMagick 程序。我的系统上已经安装了 ImageMagick 的二进制分发版,因为我可以使用 ImageMagick 的命令行界面。

但是,当我尝试在我的 C++ 程序中包含“Magick++.h”时,它说它无法打开源文件。

我找到了有关从源代码编译和构建 ImageMagick 的说明,但是是否可以更改我的 Visual Studio 项目设置,以便它可以从已安装的 ImageMagick 版本中选择必要的引用/库?

imagemagick imagemagick.net node-imagemagick imagemagick-convert

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

使用 Imagemagick.NET 去除透明度

我编写的软件包的一部分接收二进制编码的 PDF,将其转换为位图,然后将其保存到 db 中的 blob。我发现虽然它在 PDF 格式的原始文件中不是立即可见的,但文档中的透明度在转换后的位图中完全可见。

我看过其他帖子,其中 imagemagick 的命令行版本可以“展平”图像以删除透明层。这可以用 .NET 包以某种方式完成吗?如何在保存位图之前删除透明度?我需要将它保留为位图,因为它是他们标签打印机普遍认可的格式。

    /// <summary>
    /// Write image data from a pdf file to a bitmap file
    /// </summary>
    /// <param name="imgData"></param>
    private static void convertPdfToBmp(ImageData imgData)
    {
        MagickReadSettings settings = new MagickReadSettings();
        // Settings the density to 600 dpi will create an image with a better quality
        settings.Density = new Density(600);

        using (MagickImageCollection images = new MagickImageCollection())
        {
            // Add all the pages of the pdf file to …
Run Code Online (Sandbox Code Playgroud)

.net c# imagemagick.net

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