Bitmap 10x10cm mit 300 DPI [erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Bitmap 10x10cm mit 300 DPI [erledigt]

Beitrag von AUGE_OHR »

hi,

ich möchte eine QR Code erstellen der 10x10cm (!) gross ist mit 300 DPI.

Frage : wie gross muss das Bitmap werden ?

Nachtrag : siehe Lösung weiter unten
Zuletzt geändert von AUGE_OHR am Do, 19. Jan 2017 2:06, insgesamt 2-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von HaPe »

Hallo Jimmy !
ch möchte eine QR Code erstellen der 10x10cm (!) gross ist mit 300 DPI.
Frage : wie gross muss das Bitmap werden ?
Die reinen Daten benötigen ca. 1.398.000 Bytes. Was an CheckSummen, Headerinfo, usw. noch dazu kommt entzieht sich meiner Kenntnis.
--
Hans-Peter
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR »

HaPe hat geschrieben:Die reinen Daten benötigen ca. 1.398.000 Bytes. Was an CheckSummen, Headerinfo, usw. noch dazu kommt entzieht sich meiner Kenntnis.
ich meine was muss ich bei oBitmap:make() für eine Grösse angeben ?
ich möchte das Bitmap in der "passende" Grösse erstellen.

bei Drucken kann ich ja "nachträglich" auf die benötigte Grösse bringen aber ich möchte es einfach "wissen" wie man das "umrechnet".
gruss by OHR
Jimmy
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von ramses »

Ein 10x10 cm grosses Bild, QR-Code hat:

10x10 cm = 4x4 Inch = bei 300 Dots Per Inch = (4x300) x (4x300) = 1200x1200 = 1'440'000 Pixel effektiv

es kommt dann auf den gewählten Korrekturlevel (Anzahl korrigierbarer Fehler beim Lesen) und die Auflösung des verwendeten Lesegerätes an wieviele Bytes du darin unterbringen kannst. Bei 10x10 cm sind 1.3 Mbyte Daten sicher schlicht nicht machbar. Ein Standard (Version 61) QR-Code kann max. 422*422 Elemente gross sein (1 Element ist 1 sichtbares Würfelchen = mehrere Pixel) ein QR Code kann also 422*422 Elemente bezw. ca. 40000 Zeichen darstellen.
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR »

ich habe schon ein 1000 x 1000 Pixel QrCode erstellt und den kann mein Handy auch lesen.
Reveller1000.zip
1000x1000 Pixel
(926 Bytes) 240-mal heruntergeladen
ein QR "Quadrat" muss nicht aus einem Pixel bestehen. die Grösse eines "Quadrat" wird IMHO doch durch die Quadrate an den Ecken (proportional) festgelegt.

bei 72DPI und 1000 x 1000 Pixel sind das ca. 30cm x 30cm
was ich haben möchte sind 10cm x 10cm mit 300 DPI was wohl ca. 240 x 240 Pixel sind (Photoshop).
240Points.jpg
240Points.jpg (60.25 KiB) 6587 mal betrachtet
es geht mir wie schon gesagt nur um die DPI Umrechnung die mir die Wert der folgenden Tabelle gibt
DIN_DPI.jpg
DIN_DPI.jpg (95.53 KiB) 6587 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR »

wenn ich mir die Tabelle ansehe ...

DIN A0 841 x 1198 mm = 9933 x 14043 Pixel bei 300 DPI

Code: Alles auswählen

9933 / 841 = 11.811
7016 / 594 = 11,811
…
2480 / 210 = 11,809 
also ca. 11,81 Pixel = 1 mm bei 300 DPI -> bei 100mm müssten es ca. 1181 Pixel sein, oder ?
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von brandelh »

wenn du einen Bildschirm als hardware nimmst, hast du meist 96 dpi bei Druckern sind 600 dpi üblich.
Da beides hardwareabhängig ist, hast du entweder ein größeres Bild auf dem Monitor, ein kleineres auf einem hochauflösenden Drucker,
oder eben ein vergrößertes / verkleinertes Bild mit den gewünschten Außenkanten und der (umgerechneten) Auflösung für das Zielsystem.

Da es hier nur um schwarz weiß (2 Bit) und gerade Linien geht spielt die Auflösung aber eher keine Rolle.
Wenn du das selbst malen willst, empfehle ich (wie bei meinem Barcode Programm) gefüllte Boxen in der richtigen Farbe und Maßen zu verwenden.

Handys, da ist die DPI Auflösung noch viel unterschiedlicher.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR »

hi,

Danke für eure Antworten.
brandelh hat geschrieben:Da es hier nur um schwarz weiß (2 Bit) und gerade Linien geht spielt die Auflösung aber eher keine Rolle.
deshalb ist ein 10x10cm auch kein Problem. Theoretisch kann man QRcode auch auf eine Häuserwand projizieren ...

ich benötige "nur" ein 10x10cm grosses Bitmap mit 300DPi
ich will es auch nicht am Bildschirm betrachten oder selbst drucken d.h. die 96/144DPi etc. Auflösungen sind mir egal.

ich "denke", ausgehend von der Tabelle, das es 1181x1181 Pixel sein müssen damit es bei 300DPi ein 10x10cm Quadrat ergibt.

wo wir jetzt dabei sind : hat jemand schon ein "Lineal" bei dem man die Auflösung einstellen kann ?
bei meinem Lineal (s.h. Attachment) geht es nur mit Pixel
LINEAL.ZIP
Source, RES, XPJ
(4.51 KiB) 241-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR »

so nun habe ich auch ein Lineal was mir DPI gerecht Markierungen anzeigt.

während beim Druck es immer die eingestellte DPI Zahl ist könnte bei einem Monitor eine Vergrösserung (125% / 150%) sein.

nun ist es ja so das er > 125% = 120DPI ab Windows 7 nur noch 96 ausgibt bei GetDeviceCaps( hDC, LOGPIXELSX )
um bei 150% also auf den Wert zu kommen benötige ich einen Faktor Real Auflösung / AppDeskTop()

Code: Alles auswählen

GetDeviceCaps( hDC, DESKTOPHORZRES )
GetDeviceCaps( hDC, DESKTOPVERTRES )
mit Faktor 1.5 * 96 = 144DPI hätte ich nun wieder die richtige Zahl

die DPI Zahl bezieht sich ja auf Pixel pro 1 Zoll

Code: Alles auswählen

   IF (i % nDPI = 0)                          // 1 Zoll
      aAttr[GRA_AL_COLOR] :=  GRA_CLR_CYAN
      GraSetAttrLine(oPS, aAttr)
      graline( oPs, {i, 40}, {i,68})
   ENDIF
jetzt noch auf cm bei 1 Zoll = 25.4mm

Code: Alles auswählen

   IF (i % ROUND(nDPI/25.4*10,0) = 0)         // 1 cm
      aAttr[GRA_AL_COLOR] :=  GRA_CLR_RED
      GraSetAttrLine(oPS, aAttr)
      graline( oPs, {i, 55}, {i,68})
   ENDIF
damit habe ich nun eine Anzeige wo ich es in cm Abständen "schätzen" kann.
bei grössen nDPI könnte man versuchen es weiter aufzulösen aber das i % ROUND() macht das ungenau
DPI 96
DPI 96
DPi96_100_1600.jpg (49.29 KiB) 6534 mal betrachtet
DPI 120
DPI 120
DPi120_125_1600.jpg (55.3 KiB) 6534 mal betrachtet
DPI 144
DPI 144
DPi144_150_1600.jpg (59.08 KiB) 6534 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Bitmap 10x10cm mit 300 DPI [erledigt]

Beitrag von AUGE_OHR »

so nun habe ich mir das ganze in meinen QR Code Generator eingebaut
QR_Code_Generator.jpg
QR_Code_Generator.jpg (45.45 KiB) 6510 mal betrachtet

Code: Alles auswählen

METHOD QRdialog:Pixel2CM(cValue)
LOCAL nPixel
LOCAL nDPI
LOCAL cItem
LOCAL nZoll
LOCAL nMM

   IF !EMPTY(cValue)
      nPixel := VAL(cValue)
      cItem  := ::oDPI:getdata()
      nDPI   := VAL(cItem)
      nZoll  := nPixel/nDPI
      nMM    := nZoll * ::nZoll      // 25.4mm
      ::oCM:SetData(LTRIM(STR(nMM,8,2)))

      ::nPixel := nPixel
      ::nDPI   := nDPI
   ENDIF
RETURN

METHOD QRdialog:DPi2CM()
   ::Pixel2CM( ::oPixel:getdata() )
RETURN

METHOD QRdialog:CM2Pixel(cValue)
LOCAL nMM
LOCAL nDPI
LOCAL cItem
LOCAL nZoll
LOCAL nPixel

   IF !EMPTY(cValue)
      nMM   := VAL(cValue)
      cItem := ::oDPI:getdata()
      nDPI  := VAL(cItem)
      nZoll := nMM / ::nZoll
      nPixel := ROUND(nZoll * nDPI,0)
      ::oPixel:SetData(LTRIM(STR(nPixel,5)))

      ::nPixel := nPixel
      ::nDPI   := nDPI
   ENDIF
RETURN
vollen Source wie gewohnt im Mitglieder Bereich.
gruss by OHR
Jimmy
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Bitmap 10x10cm mit 300 DPI [erledigt]

Beitrag von UliTs »

Kleiner Nachtrag:
1 Inch = 1 Zoll = 2.54cm
300dpi = 300 Dots per Inch = 300 Pixel pro 2.54cm 300/2.54 Pixel pro cm = 118,11 Pixel pro cm = 118,11*10 Pixel pro 10cm = 1181,1 Pixel pro 10cm :D
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten