Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.Net] Error GDI+ e copia di un Bitmap
Forum - C# / VB.NET - [VB.Net] Error GDI+ e copia di un Bitmap

Avatar
dylan666 (Normal User)
Pro


Messaggi: 128
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 19:51
Giovedė, 06/05/2021
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:

Codice sorgente - presumibilmente VB.NET

  1. Dim MioBitmap As String = Path.GetFileName(MioItem.Text) '
  2. Dim MioBitmapImageClone As Bitmap = MyDictionary.Item(MioBitmap).Clone
  3. Dim MioBitmapImageNew As New Bitmap(MyDictionary.Item(MioBitmap), MioDictionary.Item(MioBitmap).Size)
  4. 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+

Codice sorgente - presumibilmente VB.NET

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




Grazie anticipatamente

Ultima modifica effettuata da dylan666 il 07/05/2021 alle 12:06
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2173
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:48
Lunedė, 10/05/2021
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
Testo quotato

"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.

https://stackoverflow.com/questions/4325151/adding-an-image ...



PM Quote