Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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#_Mongodb - Fatal编程技术网

C# 从图像创建缩略图

C# 从图像创建缩略图,c#,mongodb,C#,Mongodb,我有一个接收图像并将其保存到数据库的方法: public void AttachImage(Guid id、流imageStream、字符串imageName) { Post Post=GetPost(id); if(post.HasImage()) { _Delete(新ObjectId(post.ImageId)); } ObjectId imageId=\u gridFS.UploadFromStream(imageName,imageStream); post.ImageId=Image

我有一个接收图像并将其保存到数据库的方法:

public void AttachImage(Guid id、流imageStream、字符串imageName)
{
Post Post=GetPost(id);
if(post.HasImage())
{
_Delete(新ObjectId(post.ImageId));
}
ObjectId imageId=\u gridFS.UploadFromStream(imageName,imageStream);
post.ImageId=ImageId.ToString();
var filter=Builders.filter.Eq(x=>x.Id,Id);
var update=Builders.update.Set(“ImageId”,post.ImageId);
_posts.UpdateOne(过滤器,更新);
}
现在我不知道如何做同样的事情,但缩小到缩略图大小。大小应该是自动的,如果图像是
1920x1080
,我不能将其设置为例如
400x400

如何保持纵横比而不低于一定的尺寸

首先计算源图像的纵横比,例如w/h,或1920/1080=1.77。然后取你的目标尺寸,比如说400x300,然后计算图像应该有多大。您可以根据宽度或高度执行此操作:

  • 300*1.77=>533x300
  • 400/1.77=>400x225
根据源纵横比是否大于目标纵横比,静态或动态选择其中一个。如果结果尺寸大于目标尺寸,图像将被裁剪,如果尺寸较小,则会出现空白区域

如何将图像缩小为缩略图


一旦你知道图像应该有多大,你就可以解释如何缩放图像。

可能是相关的。@JonasH他们想将图像缩小到预设的宽度和高度。从技术上讲,我可以把原始大小除以一些东西,但也许有更自动的方法。什么是
自动的
意思?这是问题的核心吗?如何确定缩略图的大小?在这种情况下,您有什么要求?保持纵横比?剪辑图像还是留下空白?