我在上传之前给我的图像做水印。我面临的问题是如果图像很小,水印看起来就很大.我想根据原始图像改变水印图像的大小。
例如:水印图像应该是原始图像的30%。我在c#上这样做:
imageGraphics.FillRectangle(watermarkBrush,新矩形(新点(x,y),新大小(watermarkImage.Width+ 1,watermarkImage.Height));
我该怎么做才能先得到图像大小,然后相应地改变水印图像大小?
发布于 2013-05-02 07:59:37
好吧,then...something喜欢:
Bitmap yourImage = ...;
Bitmap yourWatermark = ...;
int newWaterWidth = (int)((float)yourImage.Width * .3);
int newWaterHeight = (int)((float)yourImage.Height* .3);
using(Bitmap resizedWaterm = new Bitmap(newWaterWidth, newWaterHeight))
using(Graphics g = Graphics.FromImage((Image)resizedWaterm))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(yourWatermark, 0, 0, newWaterWidth , newWaterHeight );
}
int x = ..., y = ...;
using(Graphics g2 = Graphics.FromImage((Image)resizedWaterm))
{
g2.FillRectangle(watermarkBrush, new Rectangle(new Point(x, y), new Size(watermarkImage.Width + 1, watermarkImage.Height)));
}(没有测试,您还需要在.(圆点)
调整大小的代码:Resizing an Image without losing any quality
希望这能有所帮助!
发布于 2018-05-19 09:38:36
NReco.VideoConverter.FFMpegConverter ffMpeg =新NReco.VideoConverter.FFMpegConverter();
string pathToVideoFile = "D:\\Projects\\Project\\Db_Script\\TAR_Dummy\\TAR_Dummy\\Videos\\"+postedFile.FileName;
string imagePath = "D:\\Watermarks\\30.png";
string Id = Guid.NewGuid().ToString();
//Convert videos from one format to another
ffMpeg.ConvertMedia(pathToVideoFile, "D:\\Watermarks\\"+Id+".flv", Format.flv);
//Add Aatermark to videos
ffMpeg.Invoke("-i "+pathToVideoFile+ " -i "+ imagePath + " -filter_complex \"overlay=10:10\" D:\\Watermarks\\Images\\" + Id+".mp4");
//Get video thumbnail
ffMpeg.GetVideoThumbnail(pathToVideoFile, "D:\\Watermarks\\Images\\" + Id.Substring(Id.Length-5)+".jpg");https://stackoverflow.com/questions/16332669
复制相似问题