AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Schwarzes Bild nach Größenänderung mit GR32
Thema durchsuchen
Ansicht
Themen-Optionen

Schwarzes Bild nach Größenänderung mit GR32

Offene Frage von "winx"
Ein Thema von ManuMF · begonnen am 8. Aug 2006 · letzter Beitrag vom 17. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#1

Schwarzes Bild nach Größenänderung mit GR32

  Alt 8. Aug 2006, 13:07
Hallo, ich habe ein Problem mit folgender Funktion, die mir ein Bild laden soll und es verkleinert an ein TImage übergeben soll:
Delphi-Quellcode:
procedure TVSForm.BildLaden(BDName: String; BMP: TBitmap);

var JPG: TJpegImage;
    TmpBMP: TBitmap32;

begin
  TmpBMP := TBitmap32.Create;
  try
    if ((AnsiLowerCase(ExtractFileExt(BDName)) = '.jpg') or (AnsiLowerCase(ExtractFileExt(BDName)) = '.jpeg')) then
    begin
      JPG := TJpegImage.Create;
      try
        JPG.LoadFromFile(BDName);
        TmpBMP.Assign(JPG);
      finally
        FreeAndNil(JPG);
      end;
    end
    else if (AnsiLowerCase(ExtractFileExt(BDName)) = '.bmp') then
      TmpBMP.LoadFromFile(BDName);

    TmpBMP.SetSize(188, 142);
    BMP.Assign(TmpBMP);
  finally
    FreeAndNil(TmpBMP);
  end;
end;

//Aufruf
BildLaden('Name', VSBild.Picture.Bitmap);
allerdings wird nur ein komplet schwarzes Bild übergeben, sonst keine Fehler.

auch wenn ich direkt Bitmap32.LoadFromFile -> SetSize -> SaveToFile ausführe, ist das Ergebnis schwarz, es sollte also nicht an der Art der Übergabe meiner Prozedure liegen.

Aber woran könnte es dann liegen?
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#2

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 9. Aug 2006, 09:31
Niemand eine Idee?

Ich weiß, es fehlen noch 3:26, aber nachher kann ich nicht an den PC
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#3

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 15. Aug 2006, 14:18
Hi,

du solltest wohl einen StrechtFilter verwenden, oder ab der
version 1.81 einen Resampler...

weisst du wie das geht???
Bin da auch am rumprobieren...hab das Problem das ich nach dem Drehen eines
Bildes immer einen schwarzen Hintergrung bekomme. In der früheren Version
war der Hintergrund immer weiss...

vielleicht können wir uns gegenseitig helfen

gruß,
winx
  Mit Zitat antworten Zitat
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#4

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 15. Aug 2006, 14:53
Hi,

versuch mal folgendes:

Delphi-Quellcode:
procedure TForm1.BildLaden(BDName: String; BMP: TBitmap32);
var JPG: TJpegImage;
    TmpBMP: TBitmap32;
begin
  TmpBMP := TBitmap32.Create;
  try
    if ((AnsiLowerCase(ExtractFileExt(BDName)) = '.jpg') or (AnsiLowerCase(ExtractFileExt(BDName)) = '.jpeg')) then
    begin
      JPG := TJpegImage.Create;
      try
        JPG.LoadFromFile(BDName);
        TmpBMP.Assign(JPG);
      finally
        FreeAndNil(JPG);
      end;
    end
    else if (AnsiLowerCase(ExtractFileExt(BDName)) = '.bmp') then
      TmpBMP.LoadFromFile(BDName);

    //TmpBMP.SetSize(188, 142);
    BMP.Assign(TmpBMP);

  finally
    FreeAndNil(TmpBMP);
  end;
end;

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
  //Aufruf
  BildLaden('C:\\alba.jpg', Image321.Bitmap);
  Paint;
  
end;
hast du ne lösung für den schwarzen hintergrund??? wie krieg ich den weiss???
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 15. Aug 2006, 15:19
ok... setsize setzt das bild komplett zurück, es bekommt dabei auch ein neues handle. die hilfedatei ist da leider nicht besonders klar, bzw. da steht überhaupt nix drin, das sagt, wie sich der bildinhalt verhält.

@winx: Dein Codeschnipsel lässt das resizen einfach komplett weg

Also, ich werd mich jetzt sofort dransetzen und n demoprogramm schreiben (wenn ichs selber hinbekomm). Mehr als zwei Stunden soll ich nciht brauchen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 15. Aug 2006, 15:48
sodele... siehe anhang.

lädt bmps (nativ) und jpegs (TPicture-Erweiterung jpeg-Unit).

Original kommt ins linke Image, Nach Klick auf "Skalieren" kommt skaliertes bild ins rechte image.

die implementation des labels links oben hab ich leider vergessen.

EDIT: unter Examples/Resampling gibts entsprechende Demos. (GR32 1.8.1)
Angehängte Dateien
Dateityp: zip gr32_resample_193.zip (1,7 KB, 47x aufgerufen)
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#7

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 16. Aug 2006, 10:19
Hi,

erstmal danke Ich hab das bei mir auch bemerkt...

Ne andere Frage. Weisst du auch ne Lösung für das problem, das mein hintergrund immer schwarz ist???
Mir ist es möglich alle Bilder usw zu drehen und zu strecken.
allerdings ist der Hintergrund immer schwarz...in meiner alten Version
(ich habe des Projekt von D7 importiert) war er weiß...
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#8

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 16. Aug 2006, 10:41
Cool, danke, jetzt klappt es endlich

Hier noch mal meine Funktion, die das Ändern übernimmt:

Delphi-Quellcode:
procedure GroesseAnpassen(BDatei: String);

var GF_O, GF_Z, GF_K: TBitmap32;
    KRS: TKernelResampler;
    Rect_Z: TRect;
    Rect_O: TRect;

begin
  GF_O := TBitmap32.Create;
  GF_Z := TBitmap32.Create;
  GF_K := TBitmap32.Create;

  try
    KRS := TKernelResampler.Create(GF_Z);
    KRS.Kernel := TLanczosKernel.Create;

    GF_O.LoadFromFile(BDatei);
    GF_Z.SetSize(Screen.DesktopWidth, Screen.DesktopHeight);

    Rect_Z := Screen.DesktopRect;

    Rect_O.TopLeft := Point(0, 0);
    Rect_O.BottomRight := Point(GF_O.Width, GF_O.Height);

    KRS.Resample(GF_Z, Rect_Z, Rect_Z, GF_O, Rect_O, DmOpaque, nil);

    GF_Z.SaveToFile(BDatei);
  finally
    FreeAndNil(GF_O);
    FreeAndNil(GF_Z);
    FreeAndNil(GF_K);
  end;
end;
So klappt es auf jeden Fall.
Wenn etwas nicht in Ordnung (Überflüssiges, Vergessenes) ist, bitte schreiben!
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#9

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 16. Aug 2006, 11:45
Hi,

also ich bekomme hier den Fehler:

Delphi-Quellcode:
    PT:=TProjectiveTransformation.create;
    PT.Srcrect:=Floatrect(0,0,bmpact.width-1,bmpact.height-1);
    //SetBorderTransparent(bmpact,Rect(0, 0, bmpact.Width - 1, bmpact.Height - 1));

    PT.X0:=CalcMousePosfromX(TransformPoint(TM,CADPoint(0,1)).X);
    PT.Y0:=CalcMousePosfromY(TransformPoint(TM,CADPoint(0,1)).Y);
    PT.X1:=CalcMousePosfromX(TransformPoint(TM,CADPoint(1,1)).X);
    PT.Y1:=CalcMousePosfromY(TransformPoint(TM,CADPoint(1,1)).Y);
    PT.X2:=CalcMousePosfromX(TransformPoint(TM,CADPoint(1,0)).X);
    PT.Y2:=CalcMousePosfromY(TransformPoint(TM,CADPoint(1,0)).Y);
    PT.X3:=CalcMousePosfromX(TransformPoint(TM,CADPoint(0,0)).X);
    PT.Y3:=CalcMousePosfromY(TransformPoint(TM,CADPoint(0,0)).Y);

    GR32_Transforms.Transform(ABitmap,bmpact,PT);

    PT.free;
das Bild bmpact ist danach schräg, und der Hintergrund ist (da es ja immer rechteckig dargestellt wird)
schwarz statt weiss!!!

So ein Dreck...weiss jemand was da bei der Transformation schief geht?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Schwarzes Bild nach Größenänderung mit GR32

  Alt 16. Aug 2006, 11:50
der hintergrund ist eben schwarz statt weiß - sollte ja wohl irgendwo eine einstellung dazu geben.

Eventuell wird da auch direkt das Alpha auf 0 gestellt - immerhin ist da ja rein gar nichts. also einfach alle durchgehen, wenn alpha 0, alpha auf 255/1 stellen und weiss machen.

EDIT: Du solltest das über TColor32Entry(Bitmap.Pixel[x,y]).A herausfinden können.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:55 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