【急】多个图像合并TIFF,image()数组怎么赋值?

fang0000fang 2015-10-29 04:31:57
此代码想将多个图像合并成一个TIFF文件,要传递imgs()这个图像数组;采用Dim IMgS() As Image = {Image.FromFile("D:\test\1-4-2054\000.JPG"), Image.FromFile("D:\test\1-4-2054\001.JPG")} 的这种写法是没问题的,但是不灵活,想通过设置数组,灵活设置图像。但在写循环时就报错,未将对象引用设置到对象的实例,new又不能在image类上使用。不知道怎么弄了



Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Dim IMgS() As Image ‘= {Image.FromFile("D:\test\1-4-2054\000.JPG"), Image.FromFile("D:\test\1-4-2054\001.JPG")}
Dim SAVEPATH As String

For i As Integer = 0 To 4

IMgS(i) =Image.FromFile("D:\test\1-4-2054\000.JPG") ’此处报错!!!未将对象引用设置到对象的实例,但是这个不知道该怎么“new”了
Next
SAVEPATH = "D:\test\1-4-2054\test.tiff"
SaveImages(images, SAVEPATH)


End Sub



Private Sub SaveImages(ByVal imgs() As Image, ByVal filepath As String)
'get the codec
Dim info As ImageCodecInfo = Nothing
For Each ici As ImageCodecInfo In ImageCodecInfo.GetImageEncoders()
If ici.MimeType = "image/tiff" Then
info = ici
End If
Next


'set the encoding
Dim enc As Imaging.Encoder = Imaging.Encoder.SaveFlag

Dim ep As New EncoderParameters(1)
ep.Param(0) = New EncoderParameter(enc, CLng(EncoderValue.MultiFrame))
Dim pages As Bitmap = Nothing
Dim frame As Integer = 0
For Each img As Image In imgs
If frame = 0 Then
pages = DirectCast(img, Bitmap)
'save first
pages.Save(filepath, info, ep)

Else
'save next
ep.Param(0) = New EncoderParameter(enc, CLng(EncoderValue.FrameDimensionPage))
Dim bm As Bitmap = DirectCast(img, Bitmap)
pages.SaveAdd(bm, ep)
End If
If frame = imgs.Length - 1 Then
'close.
ep.Param(0) = New EncoderParameter(enc, CLng(EncoderValue.Flush))
pages.SaveAdd(ep)
End If
frame += 1
Next
End Sub
...全文
148 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fang0000fang 2015-10-29
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan的回复:
你得开始的时候定义数组大小,比如:Dim IMgS(5) As Image,或者在后面ReDim数组大小
xdashewan 2015-10-29
  • 打赏
  • 举报
回复
你得开始的时候定义数组大小,比如:Dim IMgS(5) As Image,或者在后面ReDim数组大小

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧