Logo in der Mitte des QR-Codes
Zur Wahl stehen zwei Quellen: das Logo der Installation aus dem Erscheinungsbild oder ein eigenes je Code. Die Groesse ist zwischen 10 und 25 Prozent der Kantenlaenge einstellbar, hinter dem Bild liegt eine Flaeche in der Hintergrundfarbe. Mit Logo gilt die Fehlerkorrektur H, unabhaengig von der Auswahl — was das Bild verdeckt, muss sie ausgleichen. Die Auswahl steht dann fest auf H und sagt auch warum; heimlich geschieht das nicht. Ab 22 Prozent kommt eine Warnung dazu. Gerendert wird weiterhin serverseitig, damit Vorschau und Download uebereinstimmen: das SVG bekommt ein eingebettetes Bild, das PNG wird mit sharp zusammengesetzt. sharp lag ohnehin als Abhaengigkeit von Next im Baum und steht jetzt ausdruecklich in der package.json. Ein eigenes Logo gehoert zur Gestaltung, nicht zum Inhalt — es muss trotzdem an den Code gehaengt werden. Sonst raeumt die Aufraeumroutine es nach einem Tag weg und der Code verliert sein Bild. Refs #8
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
-- Ein Logo in der Mitte des Codes, wie man es von Firmen-Codes kennt.
|
||||
--
|
||||
-- Drei Angaben gehoeren zur Gestaltung: woher das Bild kommt, welche Datei es
|
||||
-- ist und wie gross es sein soll. Ohne Herkunft gibt es kein Logo — deshalb
|
||||
-- sind die ersten beiden Spalten leer erlaubt und ohne Vorbelegung.
|
||||
ALTER TABLE "QrCode" ADD COLUMN "logoSource" TEXT;
|
||||
ALTER TABLE "QrCode" ADD COLUMN "logoUploadId" TEXT;
|
||||
|
||||
-- Die Groesse hat eine Vorbelegung, damit bestehende Codes einen gueltigen
|
||||
-- Wert tragen. Ohne Logo bleibt er wirkungslos.
|
||||
ALTER TABLE "QrCode" ADD COLUMN "logoScale" INTEGER NOT NULL DEFAULT 20;
|
||||
@@ -182,6 +182,14 @@ model QrCode {
|
||||
size Int @default(512)
|
||||
ecLevel String @default("M")
|
||||
margin Int @default(4)
|
||||
/// Logo in der Mitte: "branding" nimmt das Logo der Installation,
|
||||
/// "upload" eine eigene Datei. Leer heisst: kein Logo.
|
||||
logoSource String?
|
||||
/// Die eigene Datei, wenn `logoSource` = "upload". Sie haengt ueber
|
||||
/// `Upload.qrCodeId` am Code und verschwindet mit ihm.
|
||||
logoUploadId String?
|
||||
/// Kantenlaenge des Logos in Prozent der Kantenlaenge des Codes.
|
||||
logoScale Int @default(20)
|
||||
scans Int @default(0)
|
||||
lastScanAt DateTime?
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
Reference in New Issue
Block a user