- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Threading;
- using System.IO;
- using System.Xml.Serialization;
- using DevComponents.DotNetBar;
- using System.Drawing.Printing;
- namespace ThreadingTest
- {
- public partial class PicView : Office2007Form
- {
- private Point pt;
- private const double step = 0.1;
- public PicView()
- {
- InitializeComponent(); pictureBox2.MouseWheel += new MouseEventHandler(pictureBox2_MouseWheel);
- pbMain.Image = Image.FromFile(@"D:\界面布局.bmp");
- oldwith = pbMain.Width = pbMain.Image.Width;
- oldHeith = pbMain.Height = pbMain.Image.Height;
- oldPoint = pbMain.Location = new Point((panelContainer.Width - pbMain.Width) / 2, (panelContainer.Height - pbMain.Height) / 2);
- }
- /// <summary>
- /// 这个是封装dll的方法,直接改为类库,就可以调用了
- /// </summary>
- public void SetPath(string path, string name)
- { pictureBox2.MouseWheel += new MouseEventHandler(pictureBox2_MouseWheel);
- this.Name = name;
- if (!File.Exists(path))
- {
- return;
- }
- FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
- Image image = Image.FromStream(fs);
- fs.Close();
- fs.Dispose();
- pbMain.Image = image;
- oldwith = pbMain.Width = pbMain.Image.Width;
- oldHeith = pbMain.Height = pbMain.Image.Height;
- oldPoint = pbMain.Location = new Point((panelContainer.Width - pbMain.Width) / 2, (panelContainer.Height - pbMain.Height) / 2);
- }
- #region Event
- /// <summary>
- /// 放大
- /// </summary>
- private void btnEnlarge_Click(object sender, EventArgs e)
- {
- try
- {
- pbMain.Width = pbMain.Width + int.Parse(Math.Ceiling(pbMain.Width * step).ToString());
- pbMain.Height = pbMain.Height + int.Parse(Math.Ceiling(pbMain.Height * step).ToString());
- pbMain.Location = new Point((panelContainer.Width - pbMain.Width) / 2, (panelContainer.Height - pbMain.Height) / 2);
- }
- catch { }
- }
- /// <summary>
- /// 缩小
- /// </summary>
- private void btnReduce_Click(object sender, EventArgs e)
- {
- pbMain.Width = pbMain.Width - int.Parse(Math.Ceiling(pbMain.Width * step).ToString());
- pbMain.Height = pbMain.Height - int.Parse(Math.Ceiling(pbMain.Height * step).ToString());
- pbMain.Location = new Point((panelContainer.Width - pbMain.Width) / 2, (panelContainer.Height - pbMain.Height) / 2);
- }
- private void pbMain_MouseDown(object sender, MouseEventArgs e)
- {
- pt = Cursor.Position;
- pbMain.Cursor = Cursors.SizeAll;
- }
- private void pbMain_MouseUp(object sender, MouseEventArgs e)
- {
- pbMain.Cursor = Cursors.Default;
- }
- private void pbMain_MouseMove(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- int px = Cursor.Position.X - pt.X;
- int py = Cursor.Position.Y - pt.Y;
- pbMain.Location = new Point(pbMain.Location.X + px, pbMain.Location.Y + py);
- pt = Cursor.Position;
- }
- }
- /// <summary>
- /// 打印预览图片效果
- /// </summary>
- Image image = null;
- private void btnPrint_Click(object sender, EventArgs e)
- {
- image = new Bitmap(this.panelContainer.Bounds.Width, this.panelContainer.Bounds.Height);
- Graphics gps = Graphics.FromImage(image);
- gps.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
- gps.CopyFromScreen(this.panelContainer.PointToScreen(new Point(0, 0)).X, this.panelContainer.PointToScreen(new Point(0, 0)).Y, 0, 0, new Size(this.panelContainer.Bounds.Width, this.panelContainer.Bounds.Height));
- ppd.Document = pdMain;
- System.Drawing.Printing.PageSettings df = new System.Drawing.Printing.PageSettings();
- df.PaperSize = new PaperSize("new size", image.Width, image.Height);
- pdMain.DefaultPageSettings = df;
- ppd.PrintPreviewControl.Zoom = 0.5;
- ppd.ShowDialog();
- }
- /// <summary>
- /// 导出
- /// </summary>
- private void btnExport_Click(object sender, EventArgs e)
- {
- SaveFileDialog saveFileDialog = new SaveFileDialog();
- saveFileDialog.Filter = "jpeg|*.jpg|bitmap|*.bmp|gif|*.gif|tiff|*.tif";
- saveFileDialog.FilterIndex = 1;
- saveFileDialog.RestoreDirectory = true;
- if (saveFileDialog.ShowDialog() == DialogResult.OK)
- {
- pbMain.Image.Save(saveFileDialog.FileName, System.Drawing.Imaging.ImageFormat.Tiff);
- }
- }
- /// <summary>
- /// 打印
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void pdMain_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
- {
- e.Graphics.DrawImage(image, new PointF(0,0));
- }
- #endregion
- private int oldwith = 0;
- private int oldHeith = 0;
- private Point oldPoint = new Point();
- /// <summary>
- /// 复位
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button1_Click(object sender, EventArgs e)
- {
- pbMain.Width = oldwith;
- pbMain.Height = oldHeith;
- pbMain.Location = oldPoint;
- }
-
- //鼠标滑轮放大缩小
- private void pictureBox2_MouseWheel(object sender, MouseEventArgs e)
- {
- if (e.Delta > 0)
- {
- if (pictureBox2.Width < 12000 && pictureBox2.Height < 7000)
- {
- pictureBox2.Width = pictureBox2.Width + int.Parse(Math.Ceiling(pictureBox2.Width * step).ToString());
- pictureBox2.Height = pictureBox2.Height + int.Parse(Math.Ceiling(pictureBox2.Height * step).ToString());
- pictureBox2.Location = new Point((panelEx2.Width - pictureBox2.Width) / 2, (panelEx2.Height - pictureBox2.Height) / 2);
- }
- }
- else
- {
- if (pictureBox2.Width > 70 && pictureBox2.Height > 40)
- {
- pictureBox2.Width = pictureBox2.Width - int.Parse(Math.Ceiling(pictureBox2.Width * step).ToString());
- pictureBox2.Height = pictureBox2.Height - int.Parse(Math.Ceiling(pictureBox2.Height * step).ToString());
- pictureBox2.Location = new Point((panelEx2.Width - pictureBox2.Width) / 2, (panelEx2.Height - pictureBox2.Height) / 2);
- }
- }
- }
- }
- }
winform 图片放大缩小
最新推荐文章于 2025-03-13 11:27:57 发布