Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中使用imagemagick.net在图像上应用水印#_C#_Image Processing_Magick.net - Fatal编程技术网

C# 在c中使用imagemagick.net在图像上应用水印#

C# 在c中使用imagemagick.net在图像上应用水印#,c#,image-processing,magick.net,C#,Image Processing,Magick.net,我正在使用以下代码调整图像的大小。现在,我需要使用在该图像上应用水印 工作代码: MagickGeometry size = new MagickGeometry(imgWidth, imgHeight); size.IgnoreAspectRatio = maintainAspectRatio; image.Res

我正在使用以下代码调整图像的大小。现在,我需要使用在该图像上应用水印

工作代码:

            MagickGeometry size = new MagickGeometry(imgWidth, imgHeight);
            size.IgnoreAspectRatio = maintainAspectRatio;                                                       
            image.Resize(size);   


            Bitmap watermarkObj = (Bitmap)Bitmap.FromFile("G:/Images/watermark.png");
            Bitmap objImg = new Bitmap("G:/Images/OriginalImage.jpg");
            Graphics imageGraphics = Graphics.FromImage(objImg);
            Point point = new Point(image.Width - 118, image.Height - 29);                            
            imageGraphics.DrawImage(watermarkObj, point); 
            objImg.save("G:/Images/ProcessedImage.JPG");

那么,有人能帮我如何使用imagemagick吗?原因是当我在图形中传递imageObject时,它不会在传递.net图像对象时应用水印。

您的代码不起作用,因为
image.ToBitmap()
创建了一个新位图。调用
image.write(“G:/Images/ProcessedImage.JPG”)
您正在保存未修改版本的
图像
实例。您应该执行以下操作

使用(MagickImage=newmagickimage(响应))
{
MagickGeometry size=新的MagickGeometry(imgWidth,imgHeight);
size.IgnoreAspectratioMaintainasSpectratio;
图像。调整大小(大小);
使用(位图watermarkObj=Bitmap)Bitmap.FromFile(“G:/Images/watermark.png”))
{
使用(位图imageObj=image.ToBitmap())
{
使用(Graphics imageGraphics=Graphics.FromImage(imageObj))
{
点=新点(image.Width-118,image.Height-29);
imageGraphics.DrawImage(watermarkObj,point);
imageObj.Save(“G:/Images/ProcessedImage.JPG”);
}
}
}
}
还要注意,我使用语句添加了
。当您使用
IDisposable
类时,应该真正使用它

也可以不使用
System.Drawing
进行此操作。我在Magick.NET的文档中为此创建了一个新示例:

在您的情况下,可以使用以下代码:

使用(MagickImage=newmagickimage(响应))
{
MagickGeometry size=新的MagickGeometry(imgWidth,imgHeight);
size.IgnoreAspectratioMaintainasSpectratio;
图像。调整大小(大小);
使用(MagickImage-watermark=new-MagickImage(“G:/Images/watermark.png”))
{
图像.Composite(水印,图像.宽度-118,图像.高度-29,合成器.Over);
image.Write(“G:/Images/ProcessedImage.JPG”);
}
}

您的代码无法工作,因为
image.ToBitmap()
创建了一个新位图。调用
image.write(“G:/Images/ProcessedImage.JPG”)
您正在保存未修改版本的
图像
实例。您应该执行以下操作

使用(MagickImage=newmagickimage(响应))
{
MagickGeometry size=新的MagickGeometry(imgWidth,imgHeight);
size.IgnoreAspectratioMaintainasSpectratio;
图像。调整大小(大小);
使用(位图watermarkObj=Bitmap)Bitmap.FromFile(“G:/Images/watermark.png”))
{
使用(位图imageObj=image.ToBitmap())
{
使用(Graphics imageGraphics=Graphics.FromImage(imageObj))
{
点=新点(image.Width-118,image.Height-29);
imageGraphics.DrawImage(watermarkObj,point);
imageObj.Save(“G:/Images/ProcessedImage.JPG”);
}
}
}
}
还要注意,我使用
语句添加了
。当您使用
IDisposable
类时,应该真正使用它

也可以不使用
System.Drawing
进行此操作。我在Magick.NET的文档中为此创建了一个新示例:

在您的情况下,可以使用以下代码:

使用(MagickImage=newmagickimage(响应))
{
MagickGeometry size=新的MagickGeometry(imgWidth,imgHeight);
size.IgnoreAspectratioMaintainasSpectratio;
图像。调整大小(大小);
使用(MagickImage-watermark=new-MagickImage(“G:/Images/watermark.png”))
{
图像.Composite(水印,图像.宽度-118,图像.高度-29,合成器.Over);
image.Write(“G:/Images/ProcessedImage.JPG”);
}
}

您的代码无法工作,因为
image.ToBitmap()
创建了一个新位图。调用
image.write(“G:/Images/ProcessedImage.JPG”)
您正在保存未修改版本的
图像
实例。您应该执行以下操作

使用(MagickImage=newmagickimage(响应))
{
MagickGeometry size=新的MagickGeometry(imgWidth,imgHeight);
size.IgnoreAspectratioMaintainasSpectratio;
图像。调整大小(大小);
使用(位图watermarkObj=Bitmap)Bitmap.FromFile(“G:/Images/watermark.png”))
{
使用(位图imageObj=image.ToBitmap())
{
使用(Graphics imageGraphics=Graphics.FromImage(imageObj))
{
点=新点(image.Width-118,image.Height-29);
imageGraphics.DrawImage(watermarkObj,point);
imageObj.Save(“G:/Images/ProcessedImage.JPG”);
}
}
}
}
还要注意,我使用
语句添加了
。当您使用
IDisposable
类时,应该真正使用它

也可以不使用
System.Drawing
进行此操作。我在Magick.NET的文档中为此创建了一个新示例:

在您的情况下,可以使用以下代码:

使用(MagickImage=newmagickimage(响应))
{
MagickGeometry size=新的MagickGeometry(imgWidth,imgHeight);
size.IgnoreAspectratioMaintainasSpectratio;
图像。调整大小(大小);
使用(MagickImage-watermark=new-MagickImage(“G:/Images/watermark.png”))
{
图像.Composite(水印,图像.宽度-118,图像.高度-29,合成器.Over);
image.Write(“G:/Images/ProcessedImage.JPG”);
}
}

您的代码无法工作,因为
image.ToBitmap()
创建了一个新位图。调用
image.write(“G:/Images/ProcessedImage.JPG”)
您正在保存未修改版本的
图像
实例。您应该执行以下操作

使用(MagickImage=newmagickimage(r
            MagickGeometry size = new MagickGeometry(imgWidth, imgHeight);
            size.IgnoreAspectRatio = maintainAspectRatio;                                                       
            image.Resize(size);   


            Bitmap watermarkObj = (Bitmap)Bitmap.FromFile("G:/Images/watermark.png");
            Bitmap objImg = new Bitmap("G:/Images/OriginalImage.jpg");
            Graphics imageGraphics = Graphics.FromImage(objImg);
            Point point = new Point(image.Width - 118, image.Height - 29);                            
            imageGraphics.DrawImage(watermarkObj, point); 
            objImg.save("G:/Images/ProcessedImage.JPG");