mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 16:35 Benutzername: Passwort: Auto-Login

Thema: SQLServer+ASP: Bildgrösse auslesen Datentyp image? vom 21.05.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> SQLServer+ASP: Bildgrösse auslesen Datentyp image?
Autor Nachricht
kjutta
Threadersteller

Dabei seit: 01.02.2006
Ort: -
Alter: -
Geschlecht: Weiblich
Verfasst Mi 21.05.2008 14:01
Titel

SQLServer+ASP: Bildgrösse auslesen Datentyp image?

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,
ich lese aus einer SQLServer-Datenbank verschiedene Artikel per ASP aus. Darunter ist auch eine Spalte mit dem Datentyp "image" (also Binärdaten), die ich als Stream auslese.
Nun muss ich aber die Bildbreite des ausgelesenen Bildes wissen - wie kann ich diese abgreifen? Ich finde nur Hinweise darauf, die Länge des Streams/der Binärdaten auszulesen.

Ziel soll sein:
image = stream aus SQLAbfrage
if image > XXX pixel then
Darstellung 1
else
Darstellung 2
end if

Wie kann ich das realisieren?
  View user's profile Private Nachricht senden
Kash

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Mi 21.05.2008 15:47
Titel

Antworten mit Zitat Zum Seitenanfang

da hätt ich was.

Function
Code:

public function GetImageSize(ByVal strImagePath)
    dim ImageType, arrImageDimensions(2), fso, file, s, ns, n
    ImageType = lcase(Right(strImagePath, len(strImagePath) - instrrev(strImagePath, ".", -1)))
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.OpenTextFile(strImagePath,1)
   
    Select Case ImageType
        Case "jpg", "jpeg"
            file.Skip(2)
            ns = file.Read(2)
            Do While Not (ns = "ÿÀ" Or ns = "ÿÂ")
              ns = file.Read(2)
              n = HexToDec(HexAt(ns,1) & HexAt(ns,2))
              n = n - 2
              file.Skip(n)
              ns = file.Read(2)
            Loop
            file.Skip(3)
            s = file.Read(4)
            arrImageDimensions(0) = HexToDec(HexAt(s,3) & HexAt(s,4))
            arrImageDimensions(1) = HexToDec(HexAt(s,1) & HexAt(s,2))
        Case "gif"
            s = Right(file.Read(10),4)
            arrImageDimensions(0) = HexToDec(HexAt(s,2) & HexAt(s,1))
            arrImageDimensions(1) = HexToDec(HexAt(s,4) & HexAt(s,3))
        case "bmp"
            s = Right(file.Read(24), 8)
            arrImageDimensions(0) = HexToDec(HexAt(s,4) & HexAt(s,3))
            arrImageDimensions(1) = HexToDec(HexAt(s,8) & HexAt(s,7))
        case "wmf"
            s = Right(file.Read(14), 4)
            arrImageDimensions(0) = HexToDec(HexAt(s,1) & HexAt(s,1))
            arrImageDimensions(1) = HexToDec(HexAt(s,4) & HexAt(s,3))
        case "png"
            s = Right(file.Read(24), 8)
            arrImageDimensions(0) = HexToDec(HexAt(s,3) & HexAt(s,4))
            arrImageDimensions(1) = HexToDec(HexAt(s,7) & HexAt(s,8))
    End Select
    file.Close
    Set file = Nothing
    GetImageSize = arrImageDimensions
end function

private function HexAt(s, n)
    HexAt = Hex(Asc(Mid(s, n, 1)))
    if len(HexAt) = 1 then
        HexAt = "0" & HexAt
    end if
end function

private function HexToDec(cadhex)
    Dim n, i, ch, decimal
    decimal = 0
    n = Len(cadhex)
    For i=1 To n
        decimal = decimal * 16
        ch = Mid(cadhex, i, 1)
        decimal = decimal + inStr("0123456789ABCDEFabcdef", ch) -1
    Next
    HexToDec = decimal
end function


Aufruf
Code:

Path = Server.MapPath ("../pfad/" & rs("bildurl"))
arrImageDimensions = GetImageSize(Path)
Breite = arrImageDimensions(0)
Hoehe = arrImageDimensions(1)


hoffe es hilft dir
  View user's profile Private Nachricht senden
Anzeige
Anzeige
kjutta
Threadersteller

Dabei seit: 01.02.2006
Ort: -
Alter: -
Geschlecht: Weiblich
Verfasst Do 22.05.2008 09:28
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo!

Danke für das Script!
Ich werde es mir mal genauer ansehen.

Dumme Frage am Rande - ich sehe, Du setzt den FSO ein. Ich habe aber kein wirklich physisches Bild - ich habe ja nur Binärdaten. Kann ich das Script auch für Streams einsetzen? Die Bilder werden nicht als physische Bilder auf einem Laufwerk gespeichert - nur aus der Datenbank ausgelesen.
  View user's profile Private Nachricht senden
 
Ähnliche Themen welcher Datentyp? AS3
[ASP:] Volltextabfragen Dateien + SQLServer
[Photoshop][Stapelverarbeitung][Aktion]->Bildgrösse varia
Photoshop - Nur Bildgrösse ändern, nicht die Ebenen
suche ein fall out Image Menu, mit 3 image ebenen
input type=image + image map
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.