ورود

View Full Version : علت بد نشان دادن عکس هایPNG در گزارش چیست



hassan_kahrizy
چهارشنبه 20 آبان 1388, 09:16 صبح
بسمه تعالی
با سلام
در گزارشم من برخی تصاویری که از بانک استخراج می کنم برای نمایش در گزارش دور آن را سیاه نشان می دهد و قابلیت Transparent را ندارد چرا؟
آیا راهی هست
با تشکر

bad_boy_2007
چهارشنبه 20 آبان 1388, 19:54 عصر
متاسفانه اين مشكل كريستال ريپورت هست !
فقط تصاوير JPG رو ميتونيد به گزارش پاس بديد ، براي تبديل Gif - Png , ... به jpg با GDI+ يه تيكه كد نوشم كه خودم از همين استفاده ميكنم مشكلي نداره فقط تصاوير PNG اي رو كه بدون زمينه است رو زياد خوب تبديل نميكنه :






Private Function GetPic(ByVal ID As Integer) As Byte()
Try
If Not System.IO.Directory.Exists(System.Windows.Forms.Ap plication.StartupPath & "\temp") Then
System.IO.Directory.CreateDirectory(System.Windows .Forms.Application.StartupPath & "\temp")
End If

Dim fileName As String = cls.getinfo(ID).FullPicAddress

Dim img As Image = New System.Drawing.Bitmap(fileName)
Try
img.Save(System.Windows.Forms.Application.StartupP ath & "\temp\TempPic" & ID & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
fileName = System.Windows.Forms.Application.StartupPath & "\temp\TempPic" & ID & ".jpg"
Catch ex As Exception
Try
fileName = System.Windows.Forms.Application.StartupPath & "\temp\TempPic" & ID & Now.Second & Rnd(100).ToString & ".jpg"
img.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg)
Catch ex2 As Exception
MsgBox("مشکل در ایجاد فایل تصویر " & vbCrLf & ex2.Message)
End Try
End Try

Dim fs As New System.IO.FileStream(fileName, IO.FileMode.Open, IO.FileAccess.Read)
Dim br As New System.IO.BinaryReader(fs)
Return (br.ReadBytes(Convert.ToInt32(br.BaseStream.Length )))

Catch ex As Exception
Return Nothing
End Try
End Function




تابع فوق آدرس نسبي فايل تصوير را از ديتابيس خوانده و تصوير را به صورت Byte پس ميده كه ميتونيد اين تصوير Byte شده رو مستقيم بريزين تو ديتاست

hassan_kahrizy
پنج شنبه 21 آبان 1388, 11:52 صبح
بسمه تعالی
با سلام
از لطف شما ممنونم ولی من در تبدیل عکس ها مشکلی ندارم مشکلم اینه که پس زمینه عکس هام Transparent استو اون سیاه نشون می ده
آیا هیچ راهی نداره
تو نسخه های جدید کریستال ریپورت هم این مشکل مرتفع نشده
با تشکر

bad_boy_2007
جمعه 30 بهمن 1388, 23:33 عصر
هر چند كه فكر كنم كمي دير شده

در اين مورد توصيه ميكنم از StimulReport استفاده كنيد ، به پست ذيل نگاهي بيندازيد :

http://barnamenevis.org/forum/showpost.php?p=913932&postcount=2