Tag: filesize

图像resize导致文件大小比原始C#大

我一直在使用这种方法将上传的.JPG图像调整到最大宽度,但这导致图像的kb大于源。 我究竟做错了什么? 保存新图像时还需要做些什么吗? 我尝试了各种PixelFormat组合,例如PixelFormat.Format16bppRgb555 例如:源图像​​是.JPG 1900w,试图调整到1200w …… – 源文件是563KB, – 已resize的文件为926KB或更大,甚至1.9MB public static void ResizeToMaxWidth(string fileName, int maxWidth) { Image image = Image.FromFile(fileName); if (image.Width > maxWidth) { double ratio = ((double)image.Width / (double)image.Height); int newHeight = (int)Math.Round(Double.Parse((maxWidth / ratio).ToString())); Bitmap resizedImage = new Bitmap(maxWidth, newHeight); Graphics graphics = Graphics.FromImage(resizedImage); graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphics.CompositingQuality = […]

不使用System.IO.FileInfo获取文件大小?

是否可以在不使用System.IO.FileInfo情况下在C#中获取文件的大小 ? 我知道你可以分别使用Path.GetFileName(yourFilePath)和Path.GetExtension(yourFilePath)来获取Name和Extension等其他内容,但显然不是文件大小? 有没有其他方法可以在不使用System.IO.FileInfo情况下获取文件大小 ? 唯一的原因是,如果我是正确的,FileInfo会抓取比我真正需要的更多的信息,因此如果我需要的唯一东西是文件的大小,那么收集所有这些FileInfo需要更长的时间。 有更快的方法吗?

在循环写入时检查文件大小

我循环遍历目录中的文件,并使用StreamWriter将文件名写入输出文件。 文件不能超过60K检查这个的最佳方法是什么? 现在,我在每个循环中创建一个新的FileInfo变量(如下面的代码所示)并检查其Length属性,如下代码所示: foreach (var file in directories) { if (file.FullName.Contains(“\\BAK\\”)) continue; myStream.WriteLine(file.FullName); counter += 1; FileInfo myPaths = new FileInfo(outFile); if (myPaths.Length >= 60000) { //Do Procedure } } 我在想,也许在写入之前计算每个字符串的长度会更快更简单。 也就是说, fileSz += file.FullName.Length if (fileSz >= 60000) // do procedure 或许还有另一种选择?