引用Spire.Xls.dll
using Spire.Xlsnamespace ResizeImage
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook()
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0]
//图片地址
string picPath = @"C:\Users\Administrator\Desktop\250x250.png"
//添加图片到指定位置
ExcelPicture pic = sheet.Pictures.Add(3, 3,picPath)
//对图片的长宽按50%的比例缩放
pic.Scale(50, 50)
//保存文档
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013)
}
}
}
当然,你也可以使用Workbook.LoadFromFile方法加载一个现成的Excel文档,然后选取工作表上的指定位置插入图片
用StretchBlt函数即可实现,参考代码如下:
void CImgWnd::OnPaint(){
CPaintDC dc(this) // device context for painting
//获得窗口大小
CRect r
GetClientRect(&r)
//填充背景
HBRUSH brush = (HBRUSH)::GetStockObject(GRAY_BRUSH)
::FillRect(dc.m_hDC,&r,brush)
dc.SetStretchBltMode(HALFTONE)
//将位图选进设备场景中
CDC memdc
memdc.CreateCompatibleDC( &dc )
CBitmap* pOldBmp= memdc.SelectObject(&m_bmpImage)
//获得位图参数
BITMAP bmp
m_bmpImage.GetBitmap(&bmp)
//开始缩放
switch(m_nStrechType)
{
case STRECH_1_1://1:1
dc.BitBlt(r.left,r.top,r.Width(),r.Height(),&memdc,0,0,SRCCOPY)
break
case STRECH_FULL_X://按宽度
dc.StretchBlt(r.left,r.top,r.Width(),bmp.bmHeight,&memdc,0,0,
bmp.bmWidth,bmp.bmHeight,SRCCOPY)
break
case STRECH_FULL_Y://按高度
dc.StretchBlt(r.left,r.top,bmp.bmWidth,r.Height(),&memdc,0,0,
bmp.bmWidth,bmp.bmHeight,SRCCOPY)
break
case STRECH_FULL://充满窗口
dc.StretchBlt(r.left,r.top,r.Width(),r.Height(),&memdc,0,0,
bmp.bmWidth,bmp.bmHeight,SRCCOPY)
break
case STRECH_CENTER://居中显示,大小为窗口的一半
dc.StretchBlt(r.Width()/4,r.Height()/4,r.Width()/2,r.Height()/2,&memdc,0,0,
bmp.bmWidth,bmp.bmHeight,SRCCOPY)
break
}
//还原
memdc.SelectObject(pOldBmp)
}
不如这样,不要压缩包,这样试一试,看看能不能接受这种方法
添加图片文件到工具上,移动图片到工具位置上。
1、移动多个图片为了方便,鼠标选中多个图片一同移动到页面上,压缩选择为输出原格式,缩小压缩。
2、点击开始按钮,按钮在 *** 作页面下面,这个按钮一按就是开弓没有回头箭就只能压缩了,不过还好,保留了原图片。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)