我有一个名为FPN ="c:\ ggs\ggs Access\images\members\1.jpg"的文件
我正在尝试获取图像1.jpg的尺寸,并且我想在加载之前检查图像尺寸是否有效,并且如果图像的宽度或高度小于或等于零,则弹出像"图像格式不正确"这样的消息
有人可以帮我吗?
链接这篇文章我希望能够读取图像文件的高度和宽度,而无需将整个文件读入内存.
在Frank Krueger的帖子中提到,有一种方法可以通过一些WPF Imaging类来实现.关于如何做到这一点的任何想法?
我关心这个重载中的第三个参数validateImageData.文档没有解释太多,只是说它导致图像数据被验证但没有细节,究竟是做了什么来验证图像数据?
public static Image FromStream (
Stream stream,
bool useEmbeddedColorManagement,
bool validateImageData
)
Run Code Online (Sandbox Code Playgroud)
我想在Web应用程序中使用它,所以,我想知道如果我将validateImageData设置为true将会发生什么,我想确保用户上传的是有效图像,是否建议将validateImageData设置为true或者是否足以在抛出异常时捕获异常?另外,将validateImageData设置为true可以以任何方式影响性能吗?(用户可以上传最大250k的图片)
谢谢
我正在尝试使用以下代码直接从网络上获取图片中的尺寸:
string image = @"http://www.hephaestusproject.com/blog/wp-content/uploads/2014/01/csharp3.png";
byte[] imageData = new WebClient().DownloadData(image);
MemoryStream imgStream = new MemoryStream(imageData);
Image img = Image.FromStream(imgStream);
int wSize = img.Width;
int hSize = img.Height;
Run Code Online (Sandbox Code Playgroud)
它工作但性能很糟糕,因为我需要下载许多图像才能获得它们的尺寸.有没有更好的方法来做同样的事情?
有没有办法找出图像的ContentType只来自原始字节?
目前我有一个数据库列,只存储byte [],我用它来显示网页上的图像.
MemoryStream ms = new MemoryStream(imageBytes);
Image image = Image.FromStream(ms);
image.Save(context.HttpContext.Response.OutputStream, <--ContentType-->);
Run Code Online (Sandbox Code Playgroud)
我当然可以将ContentType保存在表中的另一列中,但只是想知道是否有其他方式,例如,也许.Net有办法询问数据以获取类型.
使用Obj-c/Cocoa-touch,我试图获取图像列表的图像大小,但我不想下载它们.有一些简单的方法吗?我在其他语言中找到了一些像这样的问题的解决方案,但我正在寻找一种更简单的方法.
谢谢
我相信JPG,宽度和高度信息存储在前几个字节中.在给定绝对URI的情况下获取此信息的最简单方法是什么?
我认为ajaxcontroltoolkit:ajaxfileupload有太多错误而且减少了.因为我在我的项目中经常使用这个组件,所以我克服了许多严重令人不安的错误和这个控件的功能.现在,我真的需要使用ajaxfileupload上传图像的宽度和高度,然后保存它以检查宽度或高度是否正确并根据检索到的信息,在图像宽度和高度不兼容的情况下通知用户然后阻止进程进一步保存图片.有什么想法吗?!
HTML方面:
<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
onuploadcomplete="AjaxFileUpload1_UploadComplete" ThrobberID="myThrobber" MaximumNumberOfFiles="1" AllowedFileTypes="jpg,jpeg"/>
Run Code Online (Sandbox Code Playgroud)
代码背后:
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
string filePath = "~/upload/" + e.FileName;
AjaxFileUpload1.SaveAs(filePath);
}
Run Code Online (Sandbox Code Playgroud)