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