浅谈图片上传之剪切

对于一个网站来说,图片显示都是有一定的宽高比的,而客户上传的图片大多未经过剪切,故上传以后对图片进行一定的剪切是非常必要的。

如此,我们应当剪一个类来完成这项工作。

 public class ImageHelper{

///图片宽高比,默认1.333
 double _webWidth=1.333;

/// <summary>
///网站显示图片的 宽/高比
/// </summary>
public double WebWidth
{
get { return _webWidth; }
set {_webWidth = value; }
}
/// <summary>
/// 根据宽高比剪切图片,_webWidth
/// </summary>
/// <param name="img">需要剪切的图片</param>
/// <returns></returns>
public Bitmap CutImage(Bitmap img)
{

int width = img.Width;
int height = img.Height;
Rectangle section = new Rectangle();

//假如宽带高于高度图片
if (width >= height)
{
//根据网站宽高比例计算出宽度
section.Width = (int)(height * _webWidth);
//剪切宽大于原宽,取原宽
if (section.Width > width)
section.Width = width;
section.Height = height;
section.Y = 0;

//计算出开始截图的X定位,计算方式为(原宽-剪切宽/2)
section.X = (int)((width - section.Width) / 2);
}

///假如高度大于宽度的图片
if (width < height)
{
//根据宽高比计算出高度,为宽度/宽高比
section.Height = (int)(width / _webWidth);
//剪切宽大于原高,取原高
if (section.Height > height)
section.Height = height;

section.Width = width;
section.X = 0;

//计算出开始截图的Y定位,计算方式为(原高-剪切高/2)
section.Y = (int)((height - section.Height) / 2);
}

Bitmap pickedImage = new Bitmap(section.Width, section.Height);
Graphics pickedG = Graphics.FromImage(pickedImage);
//开始剪切并填充
pickedG.DrawImage(img, new Rectangle(0, 0, section.Width, section.Height), section,
GraphicsUnit.Pixel);
return pickedImage;

}

}

  

时间: 2024-11-08 23:46:36

浅谈图片上传之剪切的相关文章

浅谈java图片上传之剪切

对于一个网站来说,图片显示都是有一定的宽高比的,而客户上传的图片大多未经过剪切,故上传以后对图片进行一定的剪切是非常必要的. 如此,我们应当剪一个类来完成这项工作. public class ImageHelper{ ///图片宽高比,默认1.333  double _webWidth=1.333; /// <summary> ///网站显示图片的 宽/高比 /// </summary> public double WebWidth { get { return _webWidth

SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile)

本次的项目环境为 SpringBoot 2.0.4, JDK8.0. 服务器环境为CentOS7.0, Nginx的忘了版本. 前言 SpringBoot使用MultiPartFile接收来自表单的file文件,然后进行服务器的上传是一个项目最基本的需求,我以前的项目都是基于SpringMVC框架搭建的,所以在使用SpringBoot的时候进行MultiPartFile上传遇到了坑,这里说一下,其中主要包含两个坑点. 使用transferTo()方法写入File时找不到文件路径. 访问文件时Ng

小程序_图片剪切功能(支持多图片上传)

前端图片剪切上传功能是常见的功能,在开发过程中,研发一个这样的功能要花的时间也会很多,现在把一个研发好了的图片剪切插件发出来.支持剪切和大小缩放. wxml 1 <!--图片展示 --> 2 <view bindtap='upEwm' data-which='1'> 3 <view>第一个图</view> 4 <image style='width:200rpx;height:200rpx;background-color:red' src='{{he

JavaScript 图片上传预览效果

图片上传预览是一种在图片上传之前对图片进行本地预览的技术.使用户选择图片后能立即查看图片,而不需上传服务器,提高用户体验.但随着浏览器安全性的提高,要实现图片上传预览也越来越困难.不过群众的智慧是无限的,网上已经有很多变通或先进的方法来实现.例如ie7/ie8的滤镜预览法,firefox 3的getAsDataURL方法.但在opera.safari和chrome还是没有办法实现本地预览,只能通过后台来支持预览.在研究了各种预览方法后,作为总结,写了这个程序,跟大家一起分享.上次写的简便无刷新文

浅谈图片服务器的架构演进

浅谈图片服务器的架构演进 现在几乎任何一个网站.Web App以及移动APP等应用都需要有图片展示的功能,对于图片功能从下至上都是很重要的.必须要具有前瞻性的规划好图片服务器,图片的上传和下载速度至关重要,当然这并不是说一上来就搞很NB的架构,至少具备一定扩展性和稳定性.虽然各种架构设计都有,在这里我只是谈谈我的一些个人想法. 对于图片服务器来说IO无疑是消耗资源最为严重的,对于web应用来说需要将图片服务器做一定的分离,否则很可能因为图片服务器的IO负载导致应用 崩溃.因此尤其对于大型网站和应

图片上传到tomcat后突然消失

文章转载:http://blog.csdn.net/helloworld1993/article/details/47661759 调试上传用户头像时看不见的功夫上传的图片就不见了,看了这篇文章恍然大悟!!!以上是一字不差地原文 -------------------------------------------------------------------------------------------------分哥线-----------------------------------

web 图片上传实现本地预览

前言: 刚成为码农不久,第一次工作中接触图片上传功能,说到图片上传,大多数程序员可能都是先上传服务器,再获取路径.如果用户多长更改图片,服务器会产生许多垃圾文件.怎样用js实现本地预览.今天特意抽空百度研究了一下. 在说上传之前先说说如何替换or美化浏览器自带的简陋上传按钮(自定义自己的上传按钮 如:img): 1.将自定义上传按钮上方添加 input file 框,实现input实现透明处理. 2.对自定义上传按钮添加事件.隐藏真正input框.用事件来触发: function imgBtn(

ASP.NET 图片上传工具类 upload image简单好用功能齐全

使用方法: UploadImage ui = new UploadImage(); //可选参数 //ui.SetWordWater = "哈哈";//文字水印 ui.SetPicWater = Server.MapPath("2.png");//图片水印(图片和文字都赋值图片有效) ui.SetPositionWater = 4;//水印图片的位置 0居中.1左上角.2右上角.3左下角.4右下角 ui.SetSmallImgHeight = "110,4

图片上传,头像上传

简介 在平时前端开发中,图片上传与头像上传是必不可少的.下边我把上传头像做了一个小的例子,希望大家能够使用.代码是一年前写的,对于新手老手来说,一看即懂.如果想要封装好的可以加群找我要哦! 分析 上传图片,我们需要我们可以选择form表单上传,或者ajax上传,本篇文章主要讲述ajax模拟form表单上传图片.看段代码分析一下. var formData = new FormData(); formData.append("image", blob); $.ajax({ url: ur