Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Seltsamer Farb-Fehler bei Bitmaps?!? (https://www.delphipraxis.net/13891-seltsamer-farb-fehler-bei-bitmaps.html)

Corelgott 28. Dez 2003 17:35


Seltsamer Farb-Fehler bei Bitmaps?!?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi mal wieder!

Ich habe da mal so'n Problem (wie sollte es auch anders sein... :? !)
Also ich schreibe gerade an so nem kleinen Bildbetrachter rum (soll nichts außergewöhnliches können! Eben Bilder anzeigen!)

Also grab ich mir ein Bild von meiner Platte und nagel das Per Canvas direkt auf die Form!
(So kann ich die Angezeigte größe besser bestimmen)

Nun tritt da aber was auf das da eigentlich nicht hin gehört! Eine Art "Farbfehler"
Muss man sich so vorstellen, dass das Bild auf der Form zu sehen ist aber im Bild eine Art Gitternetz zu sehen ist! Alles was auf diesen Gitterlinien liegt hat ne veränderte Farbe.
(Ist verdammt doof zu beschreiben! :( )

Ich lege mal einen Screenshot bei! Vielleicht kennt das ja jemand!

Ach ja; Und hier der Code mit dem ist das Bild lade bzw. zeichne!

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
    Picture := TBitmap.Create;
    Picture.PixelFormat := pf24bit;
end;

Canvas.CopyRect(Target, Picture.Canvas, Source); //Kurze Variante...
thx Corelgott

scp 28. Dez 2003 17:43

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Hast dus schon mal mit

Delphi-Quellcode:
Canvas.CopyRect(Target, Picture.Bitmap.Canvas, Source);
probiert?

[edit]
Bzw. als was hast du Picture deklariert? TBitmap, TGraphic, oder TPicture?
[/edit]

Dagon 28. Dez 2003 17:45

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Versuchs mal mit
Picture.PixelFormat := pf32bit.

Ich weiss nicht ob es etwas nützt...

Corelgott 28. Dez 2003 17:51

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
:?: :?: :?:

Öhhhhh... Nö... Hatte ich noch nicht versucht;
Aber die Klasse TBitmap hat kein UnterObject namens Bitmap!
Das ist doch schon das Bitmap selbst!

Ok vielleicht hätte ich mal die deklaration mit liefern sollen...

Code:
var
  Form1: TForm1;
[b]Picture : TBitmap;[/b]
  Box : TRect;
Ich dachte aber das würde aus dieser Zeile klar...

Code:
    Picture := [b]TBitmap[/b].Create;
    Picture.PixelFormat := pf24bit;
@The Master

Leider hilft das auch nichts...

Hmmm...

thx & cya
Corelgott

scp 28. Dez 2003 17:55

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Hmmmm... dann muss der Fehler woanders liegen. Woher stammt den der Quell-Canvas?

Dagon 28. Dez 2003 18:01

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Versuchs mal so:
Delphi-Quellcode:
Canvas.CopyRect(Form1.Canvas.ClipRect, Picture.Canvas, Form1.Canvas.ClipRect);

Corelgott 28. Dez 2003 18:03

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
@scp

wenn du das Canvas meinst, auf das ich zeichnen will: Das ist das Canvas der Form selbst;
Falls du das Canvas meinst, in dem das Bild Offscreen gelade und gespeichert wird:
Das wäre dann das des Picture-Objects (TBitmap -> siehe Code)

Wenn du weder Möglichkeit A noch Möglichkeit B meinst, habe ich keine ahnung was du meinst? :wink: :gruebel:
( :arrow: Dann würde ich darum bitten nochmals zu Posten :-D)

thx Corelgott

Corelgott 28. Dez 2003 18:08

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Zitat:

Zitat von the_master
Versuchs mal so:
Delphi-Quellcode:
Canvas.CopyRect(Form1.Canvas.ClipRect, Picture.Canvas, Form1.Canvas.ClipRect);

An sich ist das ok, aber ich mache das ja extra so mit meinen eigenen Rects, damit ich sie, bei bedarf strecken bzw. stauchen kann. (Das problem tritt übrigend unabhänig von streckung oder stauchung auf. Sogar bei der Darstellung in Orginalgröße!) :wall:

Hmmm.... :roll:

Oder bewirkt Cliprect irgendetwas sepzielleres, als den "Zeichenbereich" der Form anzugeben?!

thx Corelgott

scp 28. Dez 2003 18:11

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Ich meinte eigentlich, wo kommt das Bild her, was gezeichnet wird? Per LoadFromFile oder wie oder was?

Dagon 28. Dez 2003 18:16

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Zitat:

Zitat von Corelgott
Oder bewirkt Cliprect irgendetwas sepzielleres, als den "Zeichenbereich" der Form anzugeben?!

Es ist schon für den Zeichenbereich vorgesehen.

Ich werde mich noch ein bisschen mit deinem Problem beschäftigen.

Corelgott 28. Dez 2003 18:16

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
@scp

Jupp! Genau so ist es:

Delphi-Quellcode:
Picture.LoadFromFile(OpenPic.FileName);

Corelgott 28. Dez 2003 18:22

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Zitat:

Zitat von the_master
Ich werde mich noch ein bisschen mit deinem Problem beschäftigen.

@the_master: :-D Danke das ist echt nett! :-D

scp 28. Dez 2003 18:38

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
So, habs raus: Zum stauchen oder strecken eignet sich CopyRect nicht. Benutz stattdessen folgendes:
Delphi-Quellcode:
  Canvas.StretchDraw(Target, Picture);

Corelgott 28. Dez 2003 18:44

Seltsamer Farb-Fehler bei Bitmaps?!?
 
Hmmm...

Irgendwie macht das den gleichen Farbfehler....

troztdem thx
Corelgott

scp 28. Dez 2003 19:01

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Seltsam, bei mir war bei CopyRect der Farbefehler und bei Stretchdraw ist er nicht mehr.

OregonGhost 29. Dez 2003 13:26

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Wenn du dich nicht scheust, etwas moderner zu werden, kannst du auch die GDI+ verwenden. Diese vergrößert und verkleinert Bilder mithilfe bilinearer Filterung ohne Farbfehler. Davon abgesehen kann sie auch ein paar mehr Formate von Haus aus laden.

Corelgott 29. Dez 2003 14:58

GDI?
 
GDI? Ich scheue weder Tod :witch: noch Teufel :evil:

:wink:

Aber ich weis nicht in wiefern das mit Spatzen auf Kanonen schießen wäre :-D
Die Hauptfunktion die mein Programm erfüllen soll ist ein JPG ISDN-eMail-Freundlich zum Machen. Also ein 2MB Digicam bild auf ca. 500kb zurechtschrumpfen lassen. Das wollte ich dem Benutzer eigentlich nur Visuell zeigen...

Hättest du viellicht mal nen Bsp-Code für mich... So zum reinschnuppern?

thx Corelgott

Ps.:
@scp Nochaml danke für die viele Mühe aber selbst nach meheren Stunden herrumbasteln mit der StrechDraw ging das immernoch nicht... :wall: :gruebel:

OregonGhost 29. Dez 2003 18:04

Re: Seltsamer Farb-Fehler bei Bitmaps?!?
 
Nee, kann dir gerade kein Beispiel bieten, kein PSDK, Visual Studio oder Delphi installiert ;c)
Aber einfach mal im PSDK nach GDI+ schauen (das + nicht vergessen, das ist das Elementare daran (c; ), da sind glaube ich auch ein paar Tutorials drin, und die Gdiplus.pas findet man auch irgendwo bei Torry oder so...
Ansonsten ist GDI+ vom Aufwand her nicht viel mehr als TBitmap.blabla oder die klassische GDI, musst halt nur die Bibliothek mitliefern, wenn es auch vor NT5.1 laufen soll :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz