Frage von anjaleinie, 15

Fotogröße in xml festlegen?

Hallo! Ich habe eine kleine Datenbank erstellt. Zu manchen Daten gibt es auch Abbildungen, die ich als .png gespeichert habe. Ich habe dies wie folgt eingebaut

                <xsl:choose>
                    <xsl:when test="itemImage/@Graph">
                        
                        <img><xsl:attribute name="src"> <xsl:value-of select="./itemImage/@Graph"/>

wie kann ich nun festlegen, welche Größe diese Fotos immer haben sollen. Habe es schon mit height und width in der versucht, aber dann wird mir nur ein Fehler angezeigt...

Danke schon mal!

Antwort
von DerMudder, 11

Ok ich muss zugeben, dass ich kein Experte in XSLT bin aber ich glaube du verwechselst da etwas bzw. musst einen anderen Weg einschlagen.

Die Datenbank ist ein "Speichermedium" wo du z.B. den Link zum Bild speicherst und prüfen kannst: Link eingetragen ja/nein.
Aber die Datenbank selber kann nicht prüfen welche Dimensionen die verlinkte Datei hat. Dies geht nur im Programm selber, womit die Daten eingetragen werden. Du kannst in der Datenbank also speichern, dass die Dimension nur x:y groß sein darf, aber das diese Dimensionen auch eingehalten werden musst du über das Formular vor dem Speichern machen.

Antwort
von skreutzer, 6

Was ist das Zielformat, welches vom XSLT erzeugt werden soll? HTML oder dein eigenes XML? Was funktioniert an

<xsl:attribute name="height"> ... </xsl:attribute>

nicht? Machst du das <xsl:attribute> und <img> auch wieder zu? Wie lautet die Fehlermeldung?

Kommentar von anjaleinie ,

Hey! Also es soll als html ausgegeben werden. Es funktioniert an sich schon, also die Bilder werden angezeigt. Jedoch ist jedes Bild halt in einer anderen Größe, weil die Bilder ja nicht alle die gleichen Maße haben. Ich würde das gerne einheitlich machen....also dachte eig mit height und width, aber dann wird mir ein Fehler angezeigt...ich verstehe deine Version leider nicht wirklich^^....also es gibt ja schon name="src"...und für height müsste ich ja Picelwerte angeben, oder nicht??

Kommentar von skreutzer ,

Verstehe das Problem. Du kannst alle Bilder skaliert darstellen lassen, indem du im HTML-Header oder einer externen Datei eine CSS-Klasse anlegst:

.myimages
{
max-height: 100px;
width: auto;
}

und dann diese Klassendefinition auf das <img/>-Element anwendest:

<img class="myimages" ... />

oder halt per

<img><xsl:attribute name="class">myimages</xsl:attribute></img>

Damit wird eine Bildhöhe von 100 Pixeln niemals überschritten, indem das Bild unter Berücksichtigung des Seitenverhältnisses herunterskaliert wird. Auf diese Weise musst du die wirklichen Abmessungen des Bilds nicht wissen, sondern kannst die Anzeige des Browsers dazu verwenden, die Darstellung aller Bilder anzugleichen.

Keine passende Antwort gefunden?

Fragen Sie die Community