我正在尝试使用ImageResizer调整图像大小,但不断收到编译错误
"错误1类型'System.Drawing.Bitmap'在未引用的程序集中定义.您必须添加对程序集'System.Drawing'的引用
搜索解决方案我发现几个类似的问题,解决方案是引用system.drawing.dll以便能够处理图像,但当我尝试通过以下方式引用它时:
右键单击项目 - >添加引用 - >选择COM - >找到system.drawing.dll
但是这给了我另一个错误,说"activeX类型库system.drawing.tlb是从.NET程序集导出的,不能作为参考添加.而是添加对.NET的引用"
而这就是我下一步该做什么的傻眼.
编辑:
我得到错误的代码
public void resizeImage(String originalFile, String thumb)
{
ResizeSettings r = new ResizeSettings();
r.MaxHeight = 200;
r.MaxWidth = 200;
ImageBuilder.Current.Build(originalFile, thumb, r);//this is where i get the first error
}
Run Code Online (Sandbox Code Playgroud) 我使用以下插件来调整ASP.net应用程序中的图像大小AzureReader2工作正常image404工作正常,但当我尝试访问blob网址时,它不会重定向,它是给予
The remote server returned an error: (404) Not Found.
Run Code Online (Sandbox Code Playgroud)
http://imageresizing.net/plugins/image404
http://imageresizing.net/plugins/azurereader2
有人用过image404和azurereader2吗?它与此兼容吗?
ImageResizer 可以在 MVC6(MVC 核心)应用程序中使用。我们知道 ImageFlow 可以(尚未发布),但在此期间我们可以做什么。非常感谢
我遇到了一个重大的性能问题.问题是在我的一个网站上有一个调用大约180个图像的滑块.这180个图像中的每一个都是由客户端浏览器通过个人URL下载的.它们是GIF和jpg的混合物,我想将它们组合成一个单独的图像; 因为透明度不是问题,所以最好是jpg.图像存储在SQL数据库中,并通过MVC控制器显示.我想这个精灵也可以通过MVC控制器创建,而不是更传统的通用ashx处理程序.
我做了一些谷歌搜索,并发现斯科特汉塞尔曼的博客文章.该帖子解释了如何组合检查图像,并通常做我想做的事情.它写于2005年,所以我很好奇是否有更好的方法.我一直在另一个项目上使用ImageResizer.我听了Hanselman先生的播客,该播客与该项目的创始人讨论了如何使用IIS和.NET调整图像大小.我从那个播客和我的经验中收集到,.NET和IIS中的图像处理可能会变得奇怪.
以这种方式调整图像到sprite是一个好主意吗?我不想要一个精灵生成器,我想要一个有效的方法将.gif和jpg组合成一个可以用作精灵的单个图像.
在处理ImageJob期间,我遇到了一些旋转图像的问题.
我在检测从某些(现代)移动设备上传的图像的正确旋转时遇到问题.
这些图像来自iPad mini和Galaxy S5.我正在拍摄肖像照片,但上传后会旋转并调整大小.如果我拍摄风景图片,处理工作正常.
我尝试过使用autorotate插件,但这似乎没什么区别.
代码是基本的,适用于某些图像,但不适用于上面提到的其他图像.
HttpPostedFileBase file = base.Request.Files["photo"];
ImageResizer.ImageJob i =
new ImageResizer.ImageJob(file,
"~/OrigFiles/" + cvm.Id + ".<ext>",
new ImageResizer.Instructions("width=768;height=1024;format=jpg;mode=max;autorotate=true;"));
i.CreateParentDirectory = true;
i.Build();
Run Code Online (Sandbox Code Playgroud)
我将手机中的照片通过电子邮件发送到我的笔记本电脑并上传了它,这很好用,这很奇怪.这可能是移动浏览器上传问题吗?在新设备上,iOS Safari和Chrome都会出现此问题.奇怪的是,在较老的第一代Nexus 7肖像图像上工作.
进一步说明
这是诊断:
You are using plugins from the Creative Edition: DiskCache (Performance Edition), WatermarkPlugin (Creative Edition)
Registered plugins:
ImageResizer.Plugins.Basic.DefaultEncoder
ImageResizer.Plugins.Basic.NoCache
ImageResizer.Plugins.Basic.ClientCache
ImageResizer.Plugins.Basic.Diagnostic
ImageResizer.Plugins.Basic.SizeLimiting
ImageResizer.Plugins.MvcRoutingShim.MvcRoutingShimPlugin
ImageResizer.Plugins.DiskCache.DiskCache
ImageResizer.Plugins.Watermark.WatermarkPlugin
ImageResizer.Plugins.Basic.AutoRotate
Configuration:
<resizer>
<plugins>
<add name="MvcRoutingShim" />
<add name="DiskCache" />
<add name="Watermark" />
<add name="AutoRotate" />
</plugins>
<watermarks>
<otherimages path="~/watermarks" right="20" bottom="20" width="20" height="20" …Run Code Online (Sandbox Code Playgroud) 我正在寻找ASP.NET图像大小调整,裁剪
好图像重新调整大小,裁剪等任何人都知道请分享
感谢提前
我正在尝试调整大小然后正方形裁剪传入的图像.我有我的图像,ReadOnlyStream并希望输出到MemoryStream.
我正在使用ImageResizer库来做到这一点.
我希望我的图像首先缩小尺寸,然后将中心方形裁剪成它们.我正在使用此代码,但它不会产生我需要的代码.它什么都没产生......
var resultStream = new MemoryStream();
ImageJob job = new ImageJob(imageStream, resultStream, new Instructions {
Width = 100,
Height = 100,
Mode = FitMode.Crop
});
job.Build();
Run Code Online (Sandbox Code Playgroud)
此代码应对大图像进行下采样,并根据库默认值(中心裁剪)裁剪它们.
我没有在web.config中提供任何特定的配置,因为我理解它并不是必需的.
我究竟做错了什么?
我们最近开始在GDI +上使用ImageResizer.Net来动态调整ASP.NET MVC 4应用程序上的图像.
是否有一种方法,仅使用ImageResizer,来确定图像的实际分辨率(DPI,PPI,无论你想要调用它)(以字节数组的形式读入).我们目前有这样的工作流程,在需要时将图像调整为指定的较低分辨率:
//pseudo-code
var image = (Bitmap)Bitmap.FromStream(contentStream)
var resX = image.HorizontalResolution;
var resY = image.VerticalResolution;
//calculate scale factor
//determine newHeight and newWidth from scale
var settings = new ResizeSettings("width={newWidth}&height={newHeight}")
var newImage = ImageBuilder.Current.Build(image, someNewImage, settings);
Run Code Online (Sandbox Code Playgroud)
这很好用,但它混合了GDI +和ImageResizer,并且有很多流打开和关闭相同的数据(实际代码有点冗长,有很多using语句).
有没有办法只使用ImageResizer确定水平和垂直分辨率?我无法立即在文档中找到任何内容.
目前,我们已经使用了托管API,但最终将使用MVC路由.
我们正在使用来自imageresizing.net的图像缩放器,并且看到了一些奇怪的行为.
当我们从流中读取图像然后调整图像大小时,我们无法再访问原始图像的属性.
以下代码将重现该问题.
static void Main(string[] args)
{
using(var httpPostedFileBaseImage = new FileStream(@"C:\test.jpg",FileMode.Open, FileAccess.Read, FileShare.Read))
{
using(var uploadedImage = Image.FromStream(httpPostedFileBaseImage))
{
Console.WriteLine(uploadedImage.Width);
var resizedImage = ImageBuilder.Current.Build(uploadedImage,
new ResizeSettings("width=110;height=83"));
Console.WriteLine(uploadedImage.Width);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在ImageBuilder行之前,我们可以看到uploadedImage.Width很好,但之后会抛出异常:
System.ArgumentException was unhandled
HResult=-2147024809
Message=Parameter is not valid.
Source=System.Drawing
StackTrace:
at System.Drawing.Image.get_Width()
at ConsoleApplication6.Program.Main(String[] args) in C:\Users\Daniel\Desktop\ConsoleApplication6\ConsoleApplication6\Program.cs:line 25
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, …Run Code Online (Sandbox Code Playgroud) 如何在ac#console应用程序中使用AutoRotate插件?我以为我能做的事情就像settings.AutoRotate = true;我可以改变合身模式来使用接缝雕刻插件.
我已经尝试settings.Add("autorotate","true")过keycollection,以及其他键名AutoRotate和autoRotate.
我在一个简单的方法中使用它.
new AutoRotate().Install(ImageResizer.Configuration.Config.Current);
...
protected static Image ResizeImage(Image image, double scaleFactor)
{
var settings = new ResizeSettings
{
Scale = ScaleMode.Both,
Width = (int)Math.Floor(Image.Width * scaleFactor),
Height = (int)Math.Floor(Image.Height * scaleFactor),
Mode = FitMode.None,
Format = "png"
};
settings.Set("autorotate", "true");
return ImageBuilder.Current.Build(image, settings, true);
}
Run Code Online (Sandbox Code Playgroud) imageresizer ×10
c# ×5
asp.net ×3
.net ×1
asp.net-mvc ×1
autorotate ×1
azure ×1
compression ×1
crop ×1
css-sprites ×1
iis ×1
resize-crop ×1