各位大神,最近在做一個小程式,delphi通過ole往excel指定的位置插入圖片,并縮小圖片尺寸;
目前插入圖片和縮小圖片的操作都正常,但是操作后我發現了一個問題:
通過delphi插入的圖片,通過拖拽放大到原始尺寸時,顯示質量急劇下降,圖片很模糊;
而通過人工在excel插入的圖片,通過拖拽縮小后再放大到原來尺寸,圖片是基本沒有變化的;
請教各位大神,delphi該怎樣操作,才能不改變原影像的質量?
注:
1,現場錄制宏,并不能錄下插入圖片和放大縮小圖片的操作,是在網上查的操作資料;
2,試驗了兩種改變圖片大小的方式,一個是通過picture.width和height的方法改變大小,
另外一個是通過selection.ShapeRange.scalewidth和scaleheight的方法改變大小,兩者效果差不多都會損失圖片質量;
3,我以為是矢量圖的原因,但是試驗了一下ps軟體生成的eps格式影像,發現不能執行插入操作;
因為不能錄制宏,不能知道是否有另外的.插入圖片方法
uj5u.com熱心網友回復:
,delphi通過ole往excel指定的位置插入圖片,并縮小圖片尺寸-----------------------------------------------------------------------------------
我印象里,添加圖片有附加屬性,決定圖片是按照原始照片添加,還是按照指定的尺寸縮放添加,i最好看一下office二次開發檔案
uj5u.com熱心網友回復:
回復 日月路明:我網上找了一下,沒有發現有用的office二次開發的檔案,大部分都是通過錄制宏的方法。因為我不太會從網上找這類資料,不知大神有沒有相關的資料?謝謝
uj5u.com熱心網友回復:
workRange := XLApp.ActiveSheet.Range[XLApp.ActiveSheet.Cells.Item[1, 1],XLApp.ActiveSheet.Cells.item[1, 1]];
XLApp.ActiveSheet.Rows[1].RowHeight := 50;
workRange.ColumnWidth := 50;
picture := XLApp.ActiveSheet.Pictures.Insert(PicPath);
picture.left := workRange.left + 1; //左
picture.top := workRange.top + 1; //高
picture.width := workRange.width - 2; //寬度
picture.height := workRange.height - 2; //高度
沒有舊版本Office測驗,這種不行?
uj5u.com熱心網友回復:
通過ole對Woed或excel的操作,速度慢,而且很不暢。不如歈和第三方控制元件。uj5u.com熱心網友回復:
這種不行,我就是這種方法插入的
uj5u.com熱心網友回復:
有成熟的控制元件嗎?delphi自帶的不好用,所以我一直沒有考慮,謝謝指點
目前我的方法是先采用GDI+演算法,將圖片縮小成需要的大小,然后再原圖插入進去,效果有所好轉,但是達不到理想狀態
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47734.html
