Contents ...
udn網路城邦
Vb.net Excel copy Picture And Paste to PictureBox
2013/06/13 11:48
瀏覽549
迴響0
推薦2
引用0

網路上找到的 相關資料都有點缺陷!!

自己研究後 發現的一些問題做紀錄

Excel Copy的圖檔

讀Clipboard 會有以下 的資料

Clipboard.GetDataObject.GetFormats

(0): "Office Drawing Shape Format"

(1): "EnhancedMetafile"

(2): "MetaFilePict"

(3): "PNG+Office Art"

(4): "JFIF+Office Art"

(5): "GIF+Office Art"

(6): "PNG"

(7): "JFIF"

(8): "GIF"

(9): "ActiveClipBoard"

圖檔部分就   3,4,5,6,7,8

3,6 是PNG

4,7 是JPG 

5,8 是GIF 很醜

用ms = obj.GetData("PNG+Office Art", True)取出 再轉到PictureBox

會發現 每個格是貼出來的都是Excel上看到的樣子和大小(可能是變形的),不是原圖!!

研究了一下..6,7,8都是 Excel 處理過的圖!!

而 3,4,5 則是  小圖 + 大圖 (不過PictureBox 只會出現處理過的圖)

對3,4做了些研究...4讀起來圖 都怪怪的!!

3 則可以取到原圖

最後的做法是

取 3的值 再從 5的Byte數 +148 Byte 作為起始值 後取到的就是 Png的原圖了哦!!跟貼到小畫家的一樣

ms = obj.GetData("PNG+Office Art", True)

ms1 = obj.GetData("PNG", True)

ImageMs = New System.IO.MemoryStream(ms.ToArray, ms1.Length + 148, ms.Length - ms1.Length - 148)

PictureBox1.Image = Image.FromStream(ImageMs)

ms.Dispose()

ms1.Dispose()
有誰推薦more
全站分類:心情隨筆 心情日記
自訂分類:知識相關
上一則: windows 8 備份
下一則: Windows 8 32bit run 16bit app
發表迴響

會員登入