| |
|
|
Uwe ''Pascal'' Niemeier | Hi Leute!
Hier eine Möglichkeit, circa WIA-Objekte aus mehreren Bildern ein Multipage-TIFF zu erstellen:
window 600,600
$H Windows.ph
$H ocx3a.ph
$I ocx3a.inc
$I ocxInfo3a.inc
ocxInit()
'
def $wiaFormatTIFF "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}"'--CLSID-Konstante per TIFF-Format
'
var Pic1$="C:\1Test\Bild1.gif"'--Existierende Bilder
var Pic2$="C:\1Test\Bild2.gif"'--Pfade bitte anpassen!
var Pic3$="C:\1Test\Bild3.gif"'--Bildtypen sind egal
'
var Ziel$="C:\1Test\Bild.tiff"'--Anzulegende File (darf noch nicht existieren)
'
var Page1&=ocxCreate("WIA.ImageFile")'--ImageObjekte
var Page2&=ocxCreate("WIA.ImageFile")
var Page3&=ocxCreate("WIA.ImageFile")
'
ocxMethod(Page1&,"LoadFile",Pic1$)'----Bilder laden
ocxMethod(Page2&,"LoadFile",Pic2$)
ocxMethod(Page3&,"LoadFile",Pic3$)
'
var ImageProcess&=ocxCreate("WIA.ImageProcess")'-------ImageProcess-Objekt
var Filters&=ocxGet(ImageProcess&,"Filters")'----------Aktive Filter (noch leer)
var FilterInfos&=ocxGet(ImageProcess&,"FilterInfos")'--Verfügbare Filter
'
'--------------------------------------------------------------------Filter auswählen
declare FilterInfo&,ID$
'
FilterInfo&=ocxGet(FilterInfos&,"Item","Frame")'----Infos zu "Frame"-Filter
ID$=ocxGet(FilterInfo&,"FilterID")'-----------------ID davon
ocxMethod(Filters&,"Add",ID$)'----------------------1. Filter "Frame" zu aktiven Filtern hinzufügen
ocxMethod(Filters&,"Add",ID$)'----------------------2. Filter "Frame" zu aktiven Filtern hinzufügen
ocxRelease(FilterInfo&)
'
FilterInfo&=ocxGet(FilterInfos&,"Item","Convert")'--Infos zu "Convert"-Filter
ID$=ocxGet(FilterInfo&,"FilterID")'-----------------ID davon
ocxMethod(Filters&,"Add",ID$)'----------------------3. Filter "Convert" zu aktiven Filtern hinzufügen
ocxRelease(FilterInfo&)
'
ocxRelease(FilterInfos&)
'
'--------------------------------------------------------------------Filter-Parameter setzen
declare Filter&,Property&
'
Filter&=ocxGet(Filters&,"Item",1)'-------------------Filter 1 ("Frame")
Property&=ocxGet(Filter&,"Properties","ImageFile")'--Eigenschaft "ImageFile"
ocxPut(Property&,"Value",Page2&)'--------------------Auf Page 2 setzen
ocxRelease(Property&,Filter&)
'
Filter&=ocxGet(Filters&,"Item",2)'-------------------Filter 2 ("Frame")
Property&=ocxGet(Filter&,"Properties","ImageFile")'--Eigenschaft "ImageFile"
ocxPut(Property&,"Value",Page3&)'--------------------Auf Page 3 setzen
ocxRelease(Property&,Filter&)
'
Filter&=ocxGet(Filters&,"Item",3)'-------------------Filter 3 ("Convert")
Property&=ocxGet(Filter&,"Properties","FormatID")'---Eigenschaft "FormatID"
ocxPut(Property&,"Value",$wiaFormatTIFF)'------------Auf CLSID von TIFF setzen
ocxRelease(Property&,Filter&)
'
'--------------------------------------------------------------------Filter anwenden + speichern
var Image&=ocxMethod(ImageProcess&,"Apply",Page1&)'--Auf Page 1 anwenden > Neues Image-Objekt
ocxMethod(Image&,"SaveFile",Ziel$)'------------------Speichern
'
ocxRelease(Page3&,Page2&,Page1&)'-----------Aufräumen
ocxRelease(Image&,ImageProcess&,Filters&)'--Aufräumen
ocxDeInit()
'
print "Fertig"
waitkey
Hinweis: Für den Convert-Filter lassen sich theoretisch verschiedene Kompressionsverfahren einstellen; in der Praxis werden aber nur "LZW" (Standart) oder "Uncompressed" unterstützt; kann aber auch systemabhängig sein.
SeeYou Pascal
Edit: Schreibfehler im Code korrigiert |
|
|
| |
|
|
|
Dieter Zornow | So ganz funktioniert es bei mir leider nicht. Ich habe 3 gleich grande JPG Bilder. Es wird ein 3 Bilder Tiff erstellt, aber das 2. wird 2 mal eingefügt und das 3. gar nicht. Habe es mit mehreren Bildern versucht, an den Bildern liegt es nicht. |
|
|
| XProfan X2Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 16.11.2011 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Dieter!
Schreibfehler meinerseits
Dem 1. und 2. Filter wurde das gleiche Bild (Page 2) zugeordnet. Fehler im Code ist nun korrigiert!
SeeYou Pascal |
|
|
| |
|
|
|
| Habe die Include ocx3a.inc und ocxInfo3a.inc mal als "ständig wichtige Include" Include angepinnt: [...] |
|
|
| |
|
|