Oppure

Loading
06/05/21 17:51
dylan666
Ciao a tutti, devo salvare delle variabili Bitmap in un PDF con iTextSharp e arrivo ad un errore GDI+ quando i file sono grandicelli come dimensioni (inteso base e altezza).
Per la precisione i file originari erano TIFF multi-pagina di cui ogni pagina è stata caricata in un Dictionary(Of String, Bitmap).
La parte incriminata è questa:

Dim MioBitmap As String = Path.GetFileName(MioItem.Text) '
Dim MioBitmapImageClone As Bitmap = MyDictionary.Item(MioBitmap).Clone
Dim MioBitmapImageNew As New Bitmap(MyDictionary.Item(MioBitmap), MioDictionary.Item(MioBitmap).Size)
Dim myImage As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(DicBitmapImageNew, System.Drawing.Imaging.ImageFormat.Tiff)


Se dopo iTextSharp.text.Image.GetInstance ci metto MyDictionary.Item(MioBitmap) (invece di DicBitmapImageNew) ho l'errore GDI+
Stessa cosa se uso il clone (ed ho letto che è normale).
Se uso il MioBitmapImageNew i file salvati in PDF (anche quelli piccoli) pesano di più.
Noto comunque che la risoluzione di MioBitmapImageNew è 96DPI mentre MioBitmap era a 300DPI.
Capisco quindi che non ne è una copia perfetta... come mai? Come faccio a farne una copia fedele?

PS:
Ho provato anche a trasformare la Btimap come Byte ma appare sempre l'errore generico GDI+

Dim ms As New IO.MemoryStream
MyDictionary.Item(MioBitmap).Save(ms, Imaging.ImageFormat.Tiff)
Dim MyBytes() As Byte = ms.GetBuffer()
Dim myImage As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(MyBytes)



Grazie anticipatamente
Ultima modifica effettuata da dylan666 07/05/21 10:06
aaa
10/05/21 6:48
Thejuster
Purtroppo come detto in precedenza, si tratta di problemi relativi a chi ha sviluppato quella libreria.
Personalmente non ho mai usato usato quella libreria.

Ma gli errori relativi alle bitmap possono essere diversi.
Principalmente io lavoro proprio la grafica, posso dirti solo bisogna inserire un breakpoint e controllare esattamente di che errore si tratta.

Sicuramente quella bitmap nel pdf viene serializzata in un certo modo.

Leggendo
"Se dopo iTextSharp.text.Image.GetInstance ci metto MyDictionary.Item(MioBitmap) (invece di DicBitmapImageNew) ho l'errore GDI+
Stessa cosa se uso il clone (ed ho letto che è normale)."
Non credo sia normale ricevere errori.

Si dovrebbe prima di tutto, sapere quel GetIstance cosa fa esattamente.

Ho trovato questo su google.
é un salvataggio, ma credo sia uguale per l'apertura o il caricamento di un immagine.

stackoverflow.com/questions/4325151/…

mire.forumfree.it/ - Mire Engine
C# UI Designer