![]() |
AW: Zwei übereinander liegende Bilddateien trennen !!!
Zitat:
|
AW: Zwei übereinander liegende Bilddateien trennen !!!
Da muss beim hochladen das eine Bild wohl ein paar Pixel verloren haben.
Beide sind 800 x 605 pixel auf meinem Laptop. Über Paint kann ich doch bestimmen, welche Farbe innerhalb des QR-Codes verwendet wird. Gibt es die Möglichkeit, alle betreffenden Farben in z.B. pink umzuändern? Sowie suchen und ersetzen bei Word? |
AW: Zwei übereinander liegende Bilddateien trennen !!!
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Bitte mal beide Bilder als BMP zum zippen. (Ein Bilderupload macht daraus immer jpg's) |
AW: Zwei übereinander liegende Bilddateien trennen !!!
Der macht beim einstellen der beiden Bilder aus BMP jetzt JPG. Will also nur JPG runterladen.
Das funktioniert nicht. |
AW: Zwei übereinander liegende Bilddateien trennen !!!
Zitat:
|
AW: Zwei übereinander liegende Bilddateien trennen !!!
Sorry, da bin ich Nerd. Was bedeutet BMP zum zippen? Habe die beiden Bilder als .bmp-Datei gespeichert.
Und wie gehts getzt weiter? |
AW: Zwei übereinander liegende Bilddateien trennen !!!
Zitat:
Datei/neu/Zip-komprimierter Ordner Beide Bilder per Drag and Drop in den Zipordner rein ziehen und den Zip-File hier hochladen... |
AW: Zwei übereinander liegende Bilddateien trennen !!!
Liste der Anhänge anzeigen (Anzahl: 1)
Interessante Aufgabe.
Deine Bilder sind allerdings nicht wirklich identisch überlagert, sondern sind in den Ausmaßen unterschiedlich (auch sind die Pixel leicht verschoben). Zum Testen daher anliegend Dein Originalbild und ein Neues Bild, bestehend aus dem Originalbild mit einem QR-Code hinterlegt (aus meiner Terminverwaltung einfach einen Termin-QR-Code erstellt), leicht transparent. Mit der nachfolgenden Funktion kann man den QR-Code da raus extrahieren:
Delphi-Quellcode:
Wobei ich die 32-Bit-Variante nicht getestet habe.
type
TRGBALine = array[word] of TRGBQuad; PRGBALine = ^TRGBALine; tBuff3Char = array [0..2] of AnsiChar; TBufTripleCharArray = array [0..32768] of TBuff3Char; pBufTripleCharArray = ^TBufTripleCharArray; // Pointer auf TRGBTripleArray function GetNewPicFromDifferences (OrgPic, NewPic, BDif: TBitmap): Boolean; var x, z, Y: Integer; RGBAOrg, RGBANew, RGBADif: pRGBALine; LineOrg, LineNew, LineDif : pBufTripleCharArray; begin Result := FALSE; if OrgPic.PixelFormat = pf32Bit then begin RGBAOrg := OrgPic.Scanline[OrgPic.Height-1]; RGBANew := NewPic.Scanline[OrgPic.Height-1]; RGBADif := BDif.Scanline[OrgPic.Height-1]; z := OrgPic.Width * OrgPic.Height; for x := 0 to z-1 do begin if Integer (RGBAOrg^[x]) <> Integer (RGBANew^[x]) then begin Result := True; RGBADif^[x].rgbBlue := 0; RGBADif^[x].rgbred := 0; RGBADif^[x].rgbgreen := 0; RGBADif^[x].rgbReserved := 255; end; end; end; if OrgPic.PixelFormat = pf24Bit then begin for y := 0 to OrgPic.Height - 1 do begin LineOrg := OrgPic.ScanLine[y]; LineNew := NewPic.ScanLine[y]; LineDif := BDif.ScanLine[y]; for x := 0 to OrgPic.Width - 1 do begin if LineOrg[x] <> LineNew[x] then begin result:= True; //LineDif[x] := LineNew[x]; LineDif[x][0] := AnsiChar (0); LineDif[x][1] := AnsiChar (0); LineDif[x][2] := AnsiChar (0); end; end; end; end; end; Die Funktion setzt voraus, dass alle Bitmaps die gleiche Größe und das gleiche Pixelformat haben, musst Du also vorher abprüfen. In Orgpic muss das Originalbild geladen werden, in NewPic das, welches das Originalbild plus den überlagerten QR-code hat. In BDif erhältst Du den extrahierten QR-Code. Mein iPhone konnte den extrahierten QR-Code einlesen und richtig auswerten. Aber die Funktion funktioniert nur, wenn Original-Bild und neues Bild sich wirklich nur durch den hinterlegten QR-Code unterscheiden. Wenn im neuen Bild alle Pixel verschoben sind (was bei Deinem Demo-Bild der Fall ist), funktioniert die Variante hier nicht. |
AW: Zwei übereinander liegende Bilddateien trennen !!!
Bitte um Entschuldigung, es war Stromausfall.
|
AW: Zwei übereinander liegende Bilddateien trennen !!!
Habe auch ein Iphone5. Mit welchem App hast Du das auslesen können? Meine können das nicht lesen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz