【UG\NX二次开发】绘图区控件drawingArea调整图片大小,修改图片尺寸

/*调整图片大小生成新图片*/
bool ResizePicture(CString strSource, int nWidth, int nHeight, CString strTarget)
{
	CImage oldimg;
	CImage newimg;
	oldimg.Load(strSource);
	if (oldimg.IsNull())
		return false;

	if (nWidth == oldimg.GetWidth() && nHeight == oldimg.GetHeight())//大小没变,无需调整
	{
		oldimg.Destroy();
		return false;
	}

	if (!newimg.CreateEx(nWidth, nHeight, 24, BI_RGB))
	{
		oldimg.Destroy();
		return false;
	}

	int nPreMode = ::SetStretchBltMode(newimg.GetDC(), HALFTONE);
	newimg.ReleaseDC();
	oldimg.Draw(newimg.GetDC(), 0, 0, nWidth, nHeight, 0, 0, oldimg.GetWidth(), oldimg.GetHeight());
	newimg.ReleaseDC();
	::SetBrushOrgEx(newimg.GetDC(), 0, 0, NULL);
	newimg.ReleaseDC();
	::SetStretchBltMode(newimg.GetDC(), nPreMode);
	newimg.ReleaseDC();

	newimg.Save(strTarget);
	newimg.Destroy();
	oldimg.Destroy();

	return true;


int main()
{
    //将绘图区要设置的图片,图片大小调整至580*380
    if(ResizePicture("D:\001.jpg", 580, 380, "D:\drawingArea0_Image.jpg"))
	    drawingArea0->SetImage("D:\drawingArea0_Image.jpg");
    else
	    drawingArea0->SetImage("D:\001.jpg");
}

你可能感兴趣的:(NX二次开发专栏,NX二次开发)