چطوری میشه از استامپ wia استفاده کرد واسه دو تا استریم به جای ادرس فایل
سلام ، دو تا استریم دارم میخوام با کمک استامپ wia استریم اول را روی استریم دوم قرارم بدم ، معمولا زمانی که میخواستم از ادرس فایل استفاده میکنم می اومدم از روش زیر استفاده میکردم :
Public Sub mergeimagewithmasterimage(ByVal masterimagefile As String, ByVal fileforappend As String, ByVal masterimagefileoutput As String, ByVal Left as Long, ByVal Top as Long)
On Error Resume Next
Dim Source As WIA.ImageFile
Set Source = New WIA.ImageFile
Source.LoadFile App.Path & "\" & fileforappend
Dim ImgF As WIA.ImageFile
Dim ImgP As WIA.ImageProcess
Set ImgF = New WIA.ImageFile
ImgF.LoadFile App.Path & "\" & masterimagefile
Set ImgP = New WIA.ImageProcess
With ImgP
.Filters.Add .FilterInfos!Stamp.FilterID
.Filters(1).Properties("ImageFile") = Source
.Filters(1).Properties("Left") = Left
.Filters(1).Properties("Top") = Top
.Filters(1).Properties("FrameIndex") = 0
Set ImgF = .Apply(ImgF)
End With
ImgF.SaveFile App.Path & "\" & masterimagefileoutput
End Sub
اما الان میخوام به جای فایل از ارایه یا همون استریم به جای دو تا فایل استفاده کنم ، میدونم که با ویکتور میشه عکس را تبدیل کردم به استریم اما بعدش که میخوام با استامپ عکس ها را ترکیب کنم نمیدونم چطوری باید این دو تا استریم را بیارم داخل استامپ. کسی میتونه کمک کنه؟
نقل قول: چطوری میشه از استامپ wia استفاده کرد واسه دو تا استریم به جای ادرس فایل
این مساله را با استفاده از یک کلاس خاص به نام cGDIPlusCache به شکل زیر حل کردم :
Dim myc As New cGDIPlusCache
myc.AddImage "captured", .mypic2.Image
myc.DrawImage LayeredCanvas_Form(ParentForm.mylayeredformid).hDC , "captured", ParentForm.capturearea.Left, ParentForm.capturearea.Top
myc.Remove "captured"
Set myc = Nothing
با این روش دیگر نیاز به استفاده از WIA برای استامپ کردن یک تصویر با یک دیتای استریم نیست و خروجی نهایی که یک استریم پی ان جی هست را میتوانم با خاصیتی که در کلاس لایه از قبل طراحی کردم به دست بیارم به شکل زیر :
Dim a()
LayeredCanvas_Form(x).GetAsStream a()
بنابراین وابستگی به فایل خارجی کامل از بین می رود و برنامه میتواند بدون ذخیره سازی داده ای بر روی دیسک با پی ان جی کار کند و تصویر یا تصاویر دلخواه را بر روی پی ان اجی اولیه بدون از بین رفتن خاصیت ترانسپرنسی استامپ کند.