110,534
社区成员
发帖
与我相关
我的任务
分享
private void Button1_Click(object sender,EventArgs e)
{this.PictureBox1.Width=this.PictureBox1.Width*4;
this.PictureBox1.Height=this.PictureBox1.Height*4;}
private void Button2_Click(object sender,EventArgs e)
{string wh=this.PictureBox1.Image.Width.ToString()+@" "+this.PictureBox1.Image.Height.ToString();MessageBox.Show(wh);}
Bitmap kk=new Bitmap(原图片变成4倍后的新图片);
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Bitmap Bmp = new Bitmap(pictureBox1.Image.Width * 4, pictureBox1.Image.Height * 4);
Graphics G = Graphics.FromImage(Bmp);
G.DrawImage(pictureBox1.Image, new Rectangle(new Point(0, 0), Bmp.Size));
G.Dispose();
pictureBox1.Image = Bmp;
}
}
}
/// <summary>
/// 生成缩略图
/// </summary>
/// <param name="originalImagePath">源图路径(物理路径)</param>
/// <param name="fileStream">文件流(与原路径二者选一)</param>
/// <param name="thumbnailPath">缩略图路径(物理路径)</param>
/// <param name="width">缩略图宽度</param>
/// <param name="height">缩略图高度</param>
/// <param name="mode">生成缩略图的方式(HW,W,H,Cut)</param>
public static void MakeThumbnail(string originalImagePath, Stream fileStream, string thumbnailPath, int width, int height, string mode)
{
Image originalImage = null;
if (originalImagePath != "") originalImage = Image.FromFile(originalImagePath);
else originalImage = Image.FromStream(fileStream);
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height;
switch (mode)
{
case "HW"://指定高宽缩放(可能变形)
break;
case "W"://指定宽,高按比例
toheight = originalImage.Height * width / originalImage.Width;
break;
case "H"://指定高,宽按比例
towidth = originalImage.Width * height / originalImage.Height;
break;
case "Cut"://指定高宽裁减(不变形)
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
{
oh = originalImage.Height;
ow = originalImage.Height * towidth / toheight;
y = 0;
x = (originalImage.Width - ow) / 2;
}
else
{
ow = originalImage.Width;
oh = originalImage.Width * height / towidth;
x = 0;
y = (originalImage.Height - oh) / 2;
}
break;
default:
toheight = originalImage.Height * width / originalImage.Width;
break;
}
Image bitmap = new Bitmap(towidth, toheight);//新建一个bmp图片
Graphics g = Graphics.FromImage(bitmap);//新建一个画板
g.InterpolationMode = InterpolationMode.High;//设置高质量插值法
g.SmoothingMode = SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
g.Clear(Color.Transparent);//清空画布并以透明背景色填充
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight), new Rectangle(x, y, ow, oh), GraphicsUnit.Pixel);
try
{
bitmap.Save(thumbnailPath, ImageFormat.Jpeg);
}
catch (Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}