我有一个图像上传表格,存储两种尺寸的图像:大图像和缩略图图像 .

对于缩略图图像,我试图从中心裁剪图像并重新调整大小为:30px x 30px .

这是我的代码:

private static Bitmap ResizeImage(MemoryStream uploadStream, int maxWidth, int maxHeight)

{

Image img = Image.FromStream(uploadStream);

double ratioX = (double)maxWidth / img.Width;

double ratioY = (double)maxHeight / img.Height;

double ratio = Math.Max(ratioX, ratioY);

int newWidth = (int)(img.Width * ratio);

int newHeight = (int)(img.Height * ratio);

Bitmap resizedBitmap = new Bitmap(newWidth, newHeight);

Graphics.FromImage(resizedBitmap).DrawImage(img, 0, 0, newWidth, newHeight);

img.Dispose();

return resizedBitmap;

}

private static Bitmap CropImageToCentre(MemoryStream uploadStream, int width, int height)

{

Image img = Image.FromStream(uploadStream);

Bitmap resizedBitmap = new Bitmap(img);

int StartX = 0, StartY = 0;

int EndX = img.Width, EndY = img.Height;

bool Crop = false;

if (img.Width > width)

{

int MidX = img.Width / 2;

StartX = MidX - (width / 2);

EndX = MidX + (width / 2);

Crop = true;

}

if (img.Width > height)

{

int MidY = img.Height / 2;

StartY = MidY - (height / 2);

EndY = MidY + (height / 2);

Crop = true;

}

if (Crop)

{

Size imgSize = new Size(width, height);

resizedBitmap = new Bitmap(img, imgSize);

}

img.Dispose();

return resizedBitmap;

}

public static Bitmap ResizeThumbnail(MemoryStream ms)

{

int thumbWidth = int.Parse(ConfigurationManager.AppSettings["thumbwidth"]);

int thumbHeight = int.Parse(ConfigurationManager.AppSettings["thumbheight"]);

return CropImageToCentre(BitmapToMemoryStream(ResizeImage(ms, thumbWidth, thumbHeight)), thumbWidth, thumbHeight);

}

public static Bitmap ResizeLargeImage(MemoryStream ms)

{

int width = int.Parse(ConfigurationManager.AppSettings["largewidth"]);

int height = int.Parse(ConfigurationManager.AppSettings["largeheight"]);

return ResizeImage(ms, width, height);

}

private static MemoryStream BitmapToMemoryStream(Bitmap bm)

{

MemoryStream memoryStream = new MemoryStream();

bm.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);

return memoryStream;

}

我遇到的问题是在调用 ResizeThumbnail() 方法时,图像不会被裁剪或调整为30px的高度和宽度 .

java memorystream 包_存储在MemoryStream中的裁剪图像中心相关推荐

  1. java 字符串包_包java字符串

    Java核心技术卷I基础知识3.6.3 不可变字符串 3.6.3 不可变字符串 String类没有提供用于修改字符串的方法.如果希望将greeting的内容修改为"Help!",不 ...

  2. java ear包_简单介绍Java 的JAR包、EAR包、WAR包区别

    原标题:简单介绍Java 的JAR包.EAR包.WAR包区别 WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专 ...

  3. smtp java 抓包_[Wireshark]_003_电子邮件抓包分析

    电子邮件是我们的生活工作中经常使用的一种服务,用来联系世界各地的朋友,客户.下面我们就用Wireshark对电子邮件进行抓包. 准备工作: 邮件客户端一款(Outlook,Foxmail,KooMai ...

  4. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创

    由于项目中用到了Applet与Servlet之间(客户端用Applet.Server端用Servlet)的通信,要求: 1:>客户端与服务端必须出Log. 2:>浏览器在加载Applet时 ...

  5. java weka包_在Eclipse中调用weka包实现分类

    1.如题. 最近写了一个FCM的聚类算法,希望能够可视化结果,因此一个想法是调用weka中的包,使自己的程序可以可视化.这里参考了网络上的方法,首先实现在Eclipse中调用weka包实现分类的功能. ...

  6. java exception 包_什么是Java中的异常包装?

    Java中的异常包装是什么? 在异常处理中有什么用? 它与异常传播有何不同? Exception wrapping is when you catch an exception, wrap it in ...

  7. java compareandset 包_在Java中,AtomicInteger compareAndSet()和synced关键字的性能如何?...

    我实现了请求实例的FIFO队列(为速度预先分配了请求对象),并开始在add方法上使用" synchronized"关键字.该方法很短(检查是否在固定大小的缓冲区中有空间,然后将值添 ...

  8. java 存储变量_如何在Java 8中将方法存储在变量中?

    小编典典 是的,您可以对任何方法进行变量引用.对于简单的方法,通常使用java.util.function.*class就足够了.这是一个工作示例: import java.util.function ...

  9. java syn包_月薪3K的后端面试点-网络与Java

    网络基础 传输控制协议TCP简介 面向连接的.可靠的.基于字节流的传输层通信协议 将应用层的数据流分割成报文段并发送给目标节点的TCP层 数据包都有序号,对方收到则发送ACK确认,未收到则重传 使用校 ...

最新文章

  1. 使用javaservice 将jboss 注册为服务
  2. 图集cancelButtonIndex,发送通知简洁写法
  3. 微信小程序正确的异步request请求,根据经纬度获取地理位置信息
  4. 前端学习(3306):函数组件usermemo和usercallback二
  5. MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件
  6. 《Python编程从入门到实践》记录之文件异常(try-except-else代码块)
  7. 一个网卡配置两个不同网段的IP地址(比如应用道闸项目)
  8. 吴恩达机器学习week2
  9. ListT清除重复某一项
  10. layui jquery innerHTML 无效
  11. L298电机驱动原理图+PCB
  12. Miller_Rabin(米勒拉宾)素数测试
  13. su必备插件_sketchup插件 su十大必备插件
  14. (Cys-RGD)包被CdTe量子|3-巯基丙酸(MPA)包被近红外发光CdTe量子
  15. ArcGIS Desktop10.3位置分配,选址分析
  16. DTL autoescape
  17. Spark SQL 快速入门系列(六)Spark SQL 访问 JDBC
  18. 香蕉派BPI-M64-〇〇五之:烧录Ubuntu16.04到emmc中(基于win10系统下操作)
  19. 真无线蓝牙耳机哪款音质最好?真无线蓝牙耳机音质排行榜
  20. 从宜宾天原看中国氯碱百年史:初心未改 工业赋能迈向强国序列

热门文章

  1. MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验...
  2. Word 2007 发布测试
  3. 【Vue案例一】实现跑马灯效果
  4. matlab图像基础处理小记
  5. 求连通域面积matlab
  6. 神经网络学习历程与总结
  7. mvc中去除html标签,MVC ValidationMessage 去除上面的Html 标签
  8. PHP设定美国东部时区,PHP中设置时区方法总结
  9. NG Updata(升级)
  10. 面试题 01.01. 判定字符是否唯一