AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Bild wird negativ gedruckt

Ein Thema von Moony · begonnen am 24. Jun 2008 · letzter Beitrag vom 25. Jun 2008
 
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Bild wird negativ gedruckt

  Alt 25. Jun 2008, 07:46
Unter negativ verstehe ich, dass das Bild als Negativ gedruckt wird. Sprich alle Farben werden invertiert ausgedruckt.

Ich werde die Funktion ausprobieren und melde mich hier wieder. Danke.

Nachtrag:

Folgendes Zwischenergebnis:

1. Wenn ich die genannte "PrintBitmap" Routine verwende, dann werden meine abgerundeten Ecken in Rosa gefärbt.
2. Wenn ich dann auf drucken gehe, wird das Bild richtig gedruckt, aber mit rosa Ecken.

Das Bild wird vorher folgendermaßen mit den Runden Ecken gesetzt:

Delphi-Quellcode:
procedure DoItRound(var myImage: TImage; pixels: Integer);
var bmp_mask,
    bmp_tmp : TBitmap;

const cl_trans_tmp = clWhite;
      cl_trans = clFuchsia;
begin
  bmp_mask := TBitmap.create;
  bmp_tmp := TBitmap.create;
  try
    //load bitmap
    bmp_tmp.Assign(myImage.picture.bitmap);

    //resize mask
    bmp_mask.PixelFormat := pf24bit;
    bmp_tmp.PixelFormat := pf24bit;
    bmp_mask.width := myImage.picture.bitmap.width;
    bmp_mask.height := myImage.picture.bitmap.height;

    //create the mask;
    bmp_mask.canvas.brush.color := cl_trans;
    bmp_mask.canvas.Pen.color := cl_trans;
    bmp_mask.Canvas.FillRect(rect(0,0,bmp_mask.width,bmp_mask.height));
    bmp_mask.canvas.brush.color := cl_trans_tmp;
    bmp_mask.canvas.Pen.color := cl_trans_tmp;
    bmp_mask.canvas.RoundRect(0,0,bmp_mask.width,bmp_mask.height, pixels,pixels);
    bmp_mask.TransparentColor := cl_trans_tmp;
    bmp_mask.Transparent := true;

    //merging the mask with original bitmap
    bmp_tmp.Canvas.Draw(0,0,bmp_mask);
    bmp_tmp.TransparentColor := cl_trans;
    bmp_tmp.Transparent := true;

    //Draw masked bitmap
   BitBlt(myImage.Canvas.Handle, 0, 0, myImage.picture.bitmap.width, myImage.picture.bitmap.height, bmp_tmp.canvas.Handle, 0, 0, srcCopy);
    myImage.canvas.draw(0,0,bmp_tmp);
    myImage.Picture.Bitmap.TransparentColor := cl_trans;
    myImage.Transparent := true;
  finally
    //free Objects
    bmp_tmp.free;
    bmp_mask.free;
  end;
end;
Wie gesagt. Die Routine funktioniert an sich sehr gut, um die runden Ecken in die Bilder zu bekommen. Nur der eine Drucker wehrt sich dagegen. Wenn ich die StrechDraw anwende, werden die Ecken transparent gezeichnet, aber das Bild als Negativ gedruckt. Verwende ich die genannte PrintBitmap Routine, dann wird das Bild richtig gedruckt, die Ecken aber rosa gezeichnet. Was ein Teufelskreis......!!!!

Ich hoffe nur, dass es da einen Ausweg gibt...

Gruß, Moony

[edit=SirThornberry]Beiträge zusammengeführt - nächstes mal bitte die Edit-Funktion verwenden - Mfg, SirThornberry[/edit]
[edit=sakura] Zeilenumbrüche ermöglicht... Mfg, sakura[/edit]
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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