我知道,能直接设置PictureBox的SizeMode属性为Zoom后。再设置PictureBox的Width和Height.
例如:
private void Button1_Click(object sender,EventArgs e)
{this.PictureBox1.Width=this.PictureBox1.Width*4;
this.PictureBox1.Height=this.PictureBox1.Height*4;}这样,图片在屏幕上就被拉伸为原来的4倍。
但是,图片实际大小实现上没有改变。它只不过是在屏幕上被暂时放大。 private void Button2_Click(object sender,EventArgs e)
{string wh=this.PictureBox1.Image.Width.ToString()+@" "+this.PictureBox1.Image.Height.ToString();MessageBox.Show(wh);}这个可以看出来,图片没有被真正地改变大小。这个PictureBox好像在骗人的。不能帮我直接改变图片的真实大小。我以后还要直接对图片处理里。例如:
Bitmap kk=new Bitmap(原图片变成4倍后的新图片);请问C#有什么办法,可以生成一个新的图片kk, 它的真实大小是原来的4倍?
例如:
private void Button1_Click(object sender,EventArgs e)
{this.PictureBox1.Width=this.PictureBox1.Width*4;
this.PictureBox1.Height=this.PictureBox1.Height*4;}这样,图片在屏幕上就被拉伸为原来的4倍。
但是,图片实际大小实现上没有改变。它只不过是在屏幕上被暂时放大。 private void Button2_Click(object sender,EventArgs e)
{string wh=this.PictureBox1.Image.Width.ToString()+@" "+this.PictureBox1.Image.Height.ToString();MessageBox.Show(wh);}这个可以看出来,图片没有被真正地改变大小。这个PictureBox好像在骗人的。不能帮我直接改变图片的真实大小。我以后还要直接对图片处理里。例如:
Bitmap kk=new Bitmap(原图片变成4倍后的新图片);请问C#有什么办法,可以生成一个新的图片kk, 它的真实大小是原来的4倍?
解决方案 »
- 查询数据的时候出现"超时时间已到。在操作完成之前超时时间已过或服务器未响应"
- 编码转换
- treeview如果有多层节点,它的索引是如何算的呢?
- 我的程序启动很慢,我希望在主窗体启动前,能有一个窗体,窗体就好像安装XP时候,左下角一闪一闪那样的东西,让用户知道程序正在运行。怎么做?
- 如何在picturebox中放入网页上的图片
- 怎么制作可排序,可改变宽度,带下拉条的DataGrid呀?高手教教我
- 请问怎样获取dataGrid的所有列的数目啊? ColumnCount??
- VS2003里radiobutton控件怎么控制只能单选阿?
- windows应用程序中的datagrid的绑定如何做(新手)
- 求解答 正则表达式
- 关于winform打印程序的问题,在线等
- 仿TXT的查找例子
/// <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();
}
}
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;
}
}
}
pictureBox1.Image = Image.FromFile(@"C:\Temp\2.bmp"); int _Width = pictureBox1.Width * 4;
int _Height = pictureBox1.Height * 4; Bitmap _ZoomBitmap = new Bitmap(_Width, _Height);
Graphics _Graphics = Graphics.FromImage(_ZoomBitmap);
_Graphics.DrawImage(pictureBox1.Image, 0, 0, _Width, _Height);
_Graphics.Dispose(); _ZoomBitmap.Save(@"C:\Temp\Zoom.bmp");