先将图片填入进PictureBox内:
m_MyImage = new Bitmap( "D:\\O0002.jpg");
m_PicBoxJPG.Image = PictureScale( m_MyImage, m_MyImage.Width, m_MyImage.Height );
实现缩放功能由下面两种方法:
一、通过picturebox的属性修改
int nWidth = m_PicBoxJPG.Width;
int nHeight = m_PicBoxJPG.Height;
m_PicBoxJPG.Width = (int)( nWidth * ZOOM_RATIO );
m_PicBoxJPG.Height = (int)( nHeight * ZOOM_RATIO );
二、修改picturebox里图片属性,实现缩放(不会影响picturebox的属性)
实现图片的剪切功能
Bitmap PictureScale( Image SourImage, int nImageWidth, int nImageHeight )
{
//int nwidth = 0;
//int nheight = 0;
// 实现图片自适应填入picturebox,相当于zoom的形式
if( ( SourImage.Width > m_PicBoxJPG.Width ) || ( SourImage.Height > m_PicBoxJPG.Height ) ) {
if( SourImage.Height * m_PicBoxJPG.Width < SourImage.Width * m_PicBoxJPG.Height ) {
nImageHeight = ( m_PicBoxJPG.Width * SourImage.Height ) / SourImage.Width;
nImageWidth = m_PicBoxJPG.Width;
}
else {
nImageHeight = m_PicBoxJPG.Height;
nImageWidth = ( SourImage.Width * m_PicBoxJPG.Height ) / SourImage.Height;
}
}
else {
nImageHeight = SourImage.Height;
nImageWidth = SourImage.Width;
}
Bitmap b = new Bitmap( nImageWidth, nImageHeight );
Graphics g = Graphics.FromImage( b );
//需要绘制的原始图片区域
Rectangle srcRect = new Rectangle( 0, 0, SourImage.Width, SourImage.Height );
// 新图的大小
Rectangle destRect = new Rectangle( 0, 0, nImageWidth, nImageHeight );
g.DrawImage( SourImage, destRect, srcRect, GraphicsUnit.Pixel );
g.Dispose();
return b;
}
//
//
//
void DoMagnify( object sender, ActionEventArgs e )
{
int nWidth = m_PicBoxJPG.Width;
int nHeight = m_PicBoxJPG.Height;
//ZOOM_RATIO 缩放比例
m_PicBoxJPG.Width = (int)( nWidth * ZOOM_RATIO );
m_PicBoxJPG.Height = (int)( nHeight * ZOOM_RATIO );
int nImageWidth = (int)( m_PicBoxJPG.Image.Width * ZOOM_RATIO );
int nImageHeight = (int)( m_PicBoxJPG.Image.Height * ZOOM_RATIO );
// 重新绘图再填入
Bitmap b = PictureScale( m_MyImage, nImageWidth, nImageHeight );
m_PicBoxJPG.Image = b;
}
本文介绍了在C#中使用PictureBox控件进行图片缩放的方法,包括通过调整控件尺寸和直接修改图片属性来实现缩放。示例代码展示了如何实现这一功能,并提到了图片剪切的相关内容。


947

被折叠的 条评论
为什么被折叠?



