Hallo,
ich hab gerade folgendes Problem: ich hab ein Bild (liegt in einem TBitmap32 vor) von dem ich weis daß es Text enthält. Ich kenne sogar die Bild-Koordinaten des Rechtecks, das den Text enthält.
Nun möchte ich diesen Text highlighten indem ich das zugehörige obige Rechteck immer Hellgrün zeichne und den Text immer weiß (wie die Suche im FireFox)
Hat jemand eine Idee, was für ein Bild ich mit welchen Einstellungen auf das Originalbild kopieren muß um den Effekt zu erhalten? Oder muß man einen ganz anderen Ansatz wählen?
Meine bisherigen Versuche schaffen es zwar, den Text zu highlighten, aber die Hintergrundfarbe und Textfarbe ändern sich je nach Ausgangsfarben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TPaInkRenderer.PaintTextSearchArea(const AHit: TPaPDFSearchResult; const AScaleX, AScaleY: double; const AColor: TColor); var i: Integer; rArea: TRect; drResult: TDoubleRect; imgHit: TBitMap32; begin for i := Low(AHit.HitAreas) to High(AHit.HitAreas) do begin imgHit := TBitmap32.Create; try drResult := AHit.HitAreas[i]; rArea := Rect(Round5(drResult.Left * AScaleX), Round5(drResult.Top * AScaleY), Round5(drResult.Right * AScaleX), Round5(drResult.Bottom * AScaleY));
imgHit.SetSize(RectWidth(rArea), RectHeight(rArea)); imgHit.Clear(AColor);
BitBlt(FImage.Handle, rArea.Left, rArea.Top, imgHit.Width, imgHit.Height, imgHit.Handle, 0, 0, DSTINVERT or SRCAND); finally imgHit.Free; end; end; end; |
Grüße,
Uli