U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Functies voor afbeeldingen op de SQL server

0000003210     -      02-04-2024

Mercator biedt via de CLR-functionaliteiten functies aan om afbeeldingen op de SQL server te manipuleren. De beschikbare functies zijn:

  • Schaalbare functie : RESIZE_IMAGE(@bytes varbinary(max), @width int, @height int)
  • Schaalbare functie : RESIZE_IMAGE_SAFE(@bytes varbinary(max), @width int, @height int)
  • Tabelfunctie : IMAGE_SIZE(@bytes varbinary(max))

De eerste twee functies worden gebruikt om de grootte van een afbeelding aan te passen. Ze geven een varbinary(max) terug. De parameters @width en @heigth stellen de gewenste maximale afmetingen in. Als de afbeelding binnen deze rechthoek past, wordt de grootte niet aangepast. Als dit niet het geval is, wordt het formaat aangepast aan de verhouding breedte / lengte.

RESIZE_IMAGE geeft een foutmelding als de varbinary(max) geen afbeelding bevat maar een ander type bestand. In tegenstelling tot RESIZE_IMAGE_SAFE die in dat geval de oorspronkelijke ontvangen bytes teruggeeft.

Voorbeeld van gebruik :

update FILES set filecontent=dbo.RESIZE_IMAGE_SAFE(filecontent, 500, 500) where ...

 

De functie IMAGE_SIZE wordt gebruikt om de grootte van een afbeelding op te halen die is opgeslagen in een varbinary(max) kolom. Het retourneert een tabel met één record en de volgende kolommen van het type int :

  • width
  • height

Voorbeeld van gebruik :

select top 10 filename,t.width,t.height from FILES cross apply dbo.IMAGE_SIZE(filecontent) t where right(rtrim(filename),4)='.png'

Deze functionaliteiten vereisen minimaal versie 1.0.16.0 van MercatorSqlClr.dll. Deze versie kan worden gecontroleerd in de systeeminformatie van het menu "Tools" of via deze query:

select dbo.MERCATOR_CLR_VERSION()

Als deze assembly ouder is, moet u "Geavanceerde Tools > SQL Database > SQL CLR Functies > Bijwerken" uitvoeren.