Hallo Forum,
ich habe ein Problem, bei dem ich nicht so recht weiterkomme.
Ich importiere via XML Bilddateien (GIF, JPG) in die Notes Bildressource um diesen in der Anwendung anzuzeigen.
Grund hierfür ist, dass ein Kunde seine eigenen Bildressourcen für eine Anwendung verwenden kann.
Das funktioniert soweit auch ganz gut.
Nur muss ich nun auch PNG Bilddateien importieren. Hier funktioniert das Ganze aber nicht mehr.
Es wird zwar ein Eintrag in der Bildressource gemacht, jedoch wird diese nicht als PNG Datei erkannt.
Importiere ich die Datei zum Test direkt im Designer, wird diese ordentlich angezeigt.
Und nun die Fragen:
1) Kann man überhaupt PNG Dateien in Notes via XML importieren? (Ich gehe mal davon aus!)
2) Wo ist der Unterschied dann zu GIF und JPG?
Notes/Domino 9.0.1 deutsch unter Windows
Hier noch den Code den ich verwende.
In der Funktion EncodeFile() wird nach Base64 encoded.
Grüße
Bernd
| Function C_Picture_Import_Engine(imageFile As String) As integer |
| On Error GoTo errhandler |
| |
| Dim ses As New NotesSession |
| Dim head As String |
| Dim imgData As Variant |
| Dim imageName As String |
| Dim imageType As String |
| Dim filename As String |
| Dim foot As String |
| Dim stream As NotesStream |
| Dim importer As NotesDXLImporter |
| |
| C_Picture_Import_Engine = False |
| |
| imageName = StrRightBack(imageFile, "\") |
| imageType = StrRightBack(imageFile, ".") |
| |
| 'write header |
| head = |<?xml version='1.0' encoding='utf-8'?>|&_ |
| |<!DOCTYPE imageresource SYSTEM '| & ses.Getenvironmentstring("NotesProgram", True) & |xmlschemas/domino_8_5_2.dtd'>|&_ |
| |<imageresource name='| & imageName & |' xmlns='http://www.lotus.com/dxl' version='8.5'|&_ |
| | maintenanceversion='2.0' replicaid='052570D600117507' publicaccess='false'|&_ |
| | designerversion='8.5.2'>|&_ |
| |<| & imageType & |>| |
| |
| imgData = FreeFile |
| Open imageFile & ".xml" For Output As imgData |
| Print #imgData, head |
| Close #imgData |
| |
| 'append encoded image data |
| Call EncodeFile(imageFile, imageFile & ".xml") |
| |
| 'append footer |
| foot = |</| & imageType & |></imageresource>| |
| imgData = FreeFile |
| Open imageFile & ".xml" For Append As imgData |
| Print #imgData, foot |
| Close #imgData |
| |
| ' Open the newly created dxl file |
| Set stream = ses.CreateStream |
| filename = imageFile & ".xml" |
| If Not stream.Open(filename) Then |
| MsgBox "Cannot open " & filename, 16, "Error" |
| Exit Function |
| End If |
| If stream.Bytes = 0 Then |
| MsgBox "setup_picture_no_file_exist", 16, filename |
| Exit Function |
| End If |
| |
| ' Import the DXL in "create" mode - replaces existing images |
| Set importer = ses.CreateDXLImporter |
| Call importer.SetInput(stream) |
| Call importer.SetOutput(CONNECTDatabase) |
| importer.ReplaceDBProperties = True |
| importer.ReplicaRequiredForReplaceOrUpdate = False |
| importer.DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE |
| Call importer.Process |
| Call stream.Close |
| |
| 'temp File wieder löschen |
| Kill imageFile & ".xml" |
| Exit Function |
| |
| errhandler: |
| if Not importer is Nothing then |
| Call MsgBox("E", 3, "Error in library ... - function: C_Picture_Import_Engine() - Error: " & Error & " (" & Err & ") in line: " & Erl & Chr$(10) & "Importer: " & importer.log, "") |
| else |
| Call MsgBox("E", 3, "Error in library ... - function: C_Picture_Import_Engine() - Error: " & Error & " (" & Err & ") in line: " & Erl, "") |
| End If |
| Exit Function |