Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Bitmap 10x10cm mit 300 DPI [erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10724
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Bitmap 10x10cm mit 300 DPI [erledigt]

Beitrag von AUGE_OHR » Do, 12. Jan 2017 18:15

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
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 274
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von HaPe » Do, 12. Jan 2017 19:06

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: 10724
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR » Do, 12. Jan 2017 19:28

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
1000 working lines a day
1000 working lines a day
Beiträge: 759
Registriert: Mi, 28. Jul 2010 17:16

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von ramses » Do, 12. Jan 2017 22:28

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.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10724
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR » Do, 12. Jan 2017 23:52

ich habe schon ein 1000 x 1000 Pixel QrCode erstellt und den kann mein Handy auch lesen.
Reveller1000.zip
1000x1000 Pixel
(926 Bytes) 25-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) 715 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) 715 mal betrachtet
gruss by OHR
Jimmy

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10724
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR » Fr, 13. Jan 2017 6:30

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: 13900
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von brandelh » Fr, 13. Jan 2017 8:17

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: 10724
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR » Fr, 13. Jan 2017 20:40

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) 24-mal heruntergeladen
gruss by OHR
Jimmy

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10724
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bitmap 10x10cm mit 300 DPI

Beitrag von AUGE_OHR » So, 15. Jan 2017 4:22

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
DPi96_100_1600.jpg
DPI 96
DPi96_100_1600.jpg (49.29 KiB) 662 mal betrachtet
DPi120_125_1600.jpg
DPI 120
DPi120_125_1600.jpg (55.3 KiB) 662 mal betrachtet
DPi144_150_1600.jpg
DPI 144
DPi144_150_1600.jpg (59.08 KiB) 662 mal betrachtet
gruss by OHR
Jimmy

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10724
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Bitmap 10x10cm mit 300 DPI [erledigt]

Beitrag von AUGE_OHR » Do, 19. Jan 2017 2:31

so nun habe ich mir das ganze in meinen QR Code Generator eingebaut
QR_Code_Generator.jpg
QR_Code_Generator.jpg (45.45 KiB) 638 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: 2477
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Kontaktdaten:

Re: Bitmap 10x10cm mit 300 DPI [erledigt]

Beitrag von UliTs » Do, 19. Jan 2017 7:33

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