02/12 11:24
bernie
Salve a tutti
Devo creare un Tiff partendo delle dimensioni di un altro Tiff.
Riesco a creare il Tiff usando una libreria , però non riesco a prendere i tag del Tiff esistente e usarli per creare il secondo Tiff.
Allego quello che ho fatto fino ad ora
La mia idea era di usare le variabili largo e alto per settare le variabili larghezza e altezza.
Mi da sempre errore BC30311 non è possibile convertire il valore di tipo FieldValue() in Integer
Qualche consiglio ?
Grazie
Devo creare un Tiff partendo delle dimensioni di un altro Tiff.
Riesco a creare il Tiff usando una libreria , però non riesco a prendere i tag del Tiff esistente e usarli per creare il secondo Tiff.
Allego quello che ho fatto fino ad ora
Imports BitMiracle.LibTiff.Classic Public Class Form1 Dim larghezza, altezza As Int32 Dim risoluzione_x, risoluzione_y As Int32 Dim valore As Int32 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click My.Computer.FileSystem.CreateDirectory("C:\Maschere") larghezza = 1000 altezza = 1000 risoluzione_x = 400 risoluzione_y = 400 Using tif As Tiff = Tiff.Open("C:\Maschere\test.tiff", "w") Using origine As Tiff = Tiff.Open("C:\Maschere\origine.tiff", "r") Dim largo As FieldValue() Dim alto As FieldValue() alto = origine.GetField(TiffTag.IMAGELENGTH) 'leggo la altezza del file originale largo = origine.GetField(TiffTag.IMAGEWIDTH) 'leggo la larghezza del file originale tif.SetField(TiffTag.IMAGEWIDTH, larghezza) tif.SetField(TiffTag.IMAGELENGTH, altezza) tif.SetField(TiffTag.BITSPERSAMPLE, 2) tif.SetField(TiffTag.SAMPLESPERPIXEL, 1) tif.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISWHITE) tif.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG) tif.SetField(TiffTag.ROWSPERSTRIP, tif.DefaultStripSize(1)) tif.SetField(TiffTag.XRESOLUTION, risoluzione_x) tif.SetField(TiffTag.YRESOLUTION, risoluzione_y) tif.SetField(TiffTag.RESOLUTIONUNIT, ResUnit.INCH) tif.SetField(TiffTag.STRIPOFFSETS, 0) tif.SetField(TiffTag.STRIPBYTECOUNTS, 1) Dim buf_originale As Byte() = New Byte(larghezza - 1) {} 'dichiaro il buffer dal file originale Dim buf As Byte() = New Byte(larghezza - 1) {} 'dichiaro il buffer del nuovo file For i As Integer = 0 To altezza - 1 'scansiono l'altezza For j As Integer = 0 To larghezza - 1 'scansiono la larghezza origine.ReadScanline(buf_originale, i) 'leggo la riga "i" dal file originale valore = Buffer.GetByte(buf_originale, j) 'leggo il singolo valore del byte della riga "i" originale Buffer.SetByte(buf, j, valore) 'scrivo il valore nel nuovo buffer Next tif.WriteScanline(buf, i) 'scrivo il buffer nel nuovo file Next End Using End Using MsgBox("Maschera Creata in C:\Maschere") End Sub End Class
La mia idea era di usare le variabili largo e alto per settare le variabili larghezza e altezza.
Mi da sempre errore BC30311 non è possibile convertire il valore di tipo FieldValue() in Integer
Qualche consiglio ?
Grazie
Ultima modifica effettuata da bernie 02/12 11:36
aaa