e1_thumbnails – Náhľady obrázkov


Plugin, ktorý vytvára JPEG thumbnaily z poslaných obrázkov.

Stiahnutie pluginu

Inštalácia pluginu

Model (provider)

VlastnosťHodnota
PubNameThumbnails
SysNamee1_thumbnails_provider

Vstupné parametre

ParameterTypPovinnýDefaultPopis
@thmbImageColumnStringÁnoNázov stĺpca vo výsledku SQL dotazu, ktorý obsahuje obrázok na spracovanie.
@thmbWidthIntNiePožadovaná šírka thumbnaliu v pixeloch.
@thmbHeightIntNiePožadovaná výška thumbnaliu v pixeloch.
@thmbKeepAspectRatioBooleanNietrueZachovať pomer strán (true) alebo natvrdo zdeformovať na presné rozmery (false).
@thmbReturnThumbnailBooleanNietruetrue = vráti thumbnail, false = ponechá pôvodný obrázok.
@thumbCompressionIntNie70Kompresia JPEG (0–100). Vyššie číslo = lepšia kompresia, menší súbor.

SQL dotaz sa zadáva do vlastnosti SQLcmd v DataSource.

Výstupné stĺpce

Plugin vráti všetky stĺpce podľa zadaného SQL príkazu a k pôvodným dátam z SQL dotazu sa pridajú nasledujúce stĺpce:

StĺpecTypPopis
ResultstringVýsledok spracovania riadku: "OK" pri úspechu, "Error" pri chybe, "No image data" ak stĺpec neobsahuje obrázok.
ResponsestringJSON s metadatami o thumbnaily: originalWidthoriginalHeightnewWidthnewHeightcompressionreturnThumbnail.
ErrorMessagestringDetailný popis chyby, ak spracovanie zlyhalo.

Stĺpec uvedený v @thmbImageColumn sa upraví priamo: ak je @thmbReturnThumbnail = true, nahradí sa thumbnailom; ak false, ponechá sa pôvodná hodnota.

Datasource (GetDataTable)

Plugin vykoná SQL dotaz z SQLcmd, pre každý riadok spracuje obrázok v stĺpci @thmbImageColumn a vráti upravenú tabuľku.

Príklad

SQLcmd: SELECT id, nazov, obrazok FROM produkty WHERE kategoria = @kat
Parametre:
  @kat = "elektronika"
  @thmbImageColumn = "obrazok"
  @thmbWidth = 300
  @thmbHeight = 200
  @thmbKeepAspectRatio = true
  @thmbReturnThumbnail = true
  @thumbCompression = 80

Akcia Datarepeater / SetLargeDataTable

Vstupné dáta už obsahujú stĺpec s obrázkami. Plugin:

  1. Pre každý riadok vytvorí thumbnail a nahradí ho v stĺpci @thmbImageColumn.
  2. Po spracovaní všetkých riadkov vykoná Tools.ExecuteSave s príkazom z SQLcmd, čím uloží zmeny späť do databázy.

Dôležité: SQLcmd musí byť INSERT/UPDATE príkaz, ktorý vie prijať celú tabuľku (napr. UPDATE produkty SET obrazok = @obrazok WHERE id = @id). Názvy stĺpcov sa mapujú na parametre podľa Caption/ValName.

Scenáre výpočtu rozmerov

Scenár A – Zadaná iba šírka ALEBO iba výška

Ak je jeden rozmer null/0, druhý sa automaticky dopočíta tak, aby sa zachoval pomer strán. Parameter @thmbKeepAspectRatio sa v tomto prípade ignoruje.

Príklad: Originál 1000×2000 px, @thmbWidth = 300 → Výsledok: 300×600 px

Scenár B – Oba rozmery zadané, KeepAspectRatio = false

Obrázok sa natvrdo stlačí/roztiahne na presné rozmery. Pomer strán sa nezachováva – obrázok môže byť deformovaný.

Príklad: Originál 1000×2000 px, @thmbWidth = 300, @thmbHeight = 200, KeepAspectRatio = false → Výsledok: 300×200 px (deformované)

Scenár C – Oba rozmery zadané, KeepAspectRatio = true

Obrázok sa zmenší tak, aby sa celý zmestil do pomyselného boxu s rozmermi X×Y, pričom sa zachová pomer strán. Použije sa menší z pomerov zmenšenia (aby obrázok nepretekol ani v jednom smere).

Príklad: Originál 1000×2000 px, box 300×300 px:
Pomer šírka: 300/1000 = 0.3
Pomer výška: 300/2000 = 0.15
Menší pomer je 0.15 → Výsledok: 150×300 px

Neplatné obrázky

Ak stĺpec @thmbImageColumn obsahuje súbor, ktorý nie je platným obrázkom:

  • @thmbReturnThumbnail = true → hodnota v stĺpci sa nastaví na NULL (DBNull).
  • @thmbReturnThumbnail = false → pôvodné dáta ostanú nezmenené.

V oboch prípadoch sa do stĺpca Result zapíše "Invalid image data" a do ErrorMessage opis chyby.

Podporované formáty vstupov

  • byte[] – binárne dáta obrázka
  • string – base64 reťazec
  • string – data:image/... URI
  • string – cesta k súboru na serveri (ak súbor existuje)

Ukážka rýchlosti načítania zoznamu s obrázkami bez thumbnails vs s thumbnails

Zobrazenie detailu:

  • navigačná akcia s ShowAs DetailView a parametrom @thmbReturnThumbnail = false