AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

'leeres' Bitmap erstellen?

Ein Thema von LeoSam · begonnen am 18. Feb 2007 · letzter Beitrag vom 18. Feb 2007
Antwort Antwort
LeoSam
(Gast)

n/a Beiträge
 
#1

'leeres' Bitmap erstellen?

  Alt 18. Feb 2007, 14:06
Hallo,

Ich habe ein Image (Image1) erstellt und möchte nun ein Bild "reinzeichnen", beispielsweise einen Farbverlauf

Delphi-Quellcode:
procedure TForm1.Bild_zeichnen;
type
  PixArray = Array [1..3] of Byte;
var
  p: ^PixArray;
  h,w: Integer; bit: TBitmap;
begin
  bit := image2.Picture.Bitmap; //Was muss hier stehen???
  bit.Height := 100;
  bit.Width := 100;
  image1.Width := 100;
  image1.Height := 100;

  for h:=0 to Bit.Height-1 do
  begin
    p:= Bit.ScanLine[h];
    for w:=0 to Bit.Width-1 do
    begin
      p^[3]:=255; //
      p^[2]:=w; // Beispiel: Farbverlauf von rot nach gelb
      p^[1]:=0; //
      Inc(p);
    end;
  end;

  image1.Picture.Bitmap := bit;

end;
Das Problem:
Ich wusste nicht, was ich "bit" am Anfang zuweisen musste, deswegen habe ich ein neues Image (Image2) erstellt und 'bit' den (leeren?) Inhalt von Image2 zugewiesen...
Wenn ich vorher ein Bild in das Image2 geladen habe funktioniert es, wenn nicht wird beim Image1 einfach alles weiß, kann mir jemand sagen warum und was ich dem Bitmap 'bit' am Anfang zuweisen muss??

Vielleicht stehe ich grad total auf dem Schlauch aber ich weiß einfach nicht weiter

Danke schon mal im Vorraus
MFG leo
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: 'leeres' Bitmap erstellen?

  Alt 18. Feb 2007, 14:09
Delphi-Quellcode:
var Bit: TBitmap;

Bit := TBitmap.Create;
Bit.Width := 800;
Bit.Height:= 600;
Das ist ein 800*600Pixel großes leeres (weißes) Bitmap.

EDIT: Achso.. LEER ... Sag das doch *g*
Blawen unter mir hat Recht.. Hab da was falsch verstanden, bzw zu schnell gelesen und zu wenig verstanden

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
651 Beiträge
 
Delphi 12 Athens
 
#3

Re: 'leeres' Bitmap erstellen?

  Alt 18. Feb 2007, 14:11
Ich habe grad kein Delphi zur Hand, darum kann ich nur mal raten:
Code:
bit := NIL;
Roland
  Mit Zitat antworten Zitat
18. Feb 2007, 14:12
Dieses Thema wurde von "Matze" von "Open-Source" nach "Multimedia" verschoben.
Es handelt sich nicht um ein Open-Source-Programm.
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

Re: 'leeres' Bitmap erstellen?

  Alt 18. Feb 2007, 14:25
Zitat von blawen:
Ich habe grad kein Delphi zur Hand, darum kann ich nur mal raten:
Code:
bit := NIL;
Damit verschiebst Du das Bitmap in das Nirvana. (Simple: nil = nix)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
LeoSam
(Gast)

n/a Beiträge
 
#6

Re: 'leeres' Bitmap erstellen?

  Alt 18. Feb 2007, 16:12
ok, danke schon mal aber es funktioniert leider noch nicht.
Ich habe beide Möglichkeiten ausprobiert
bei
bit := nil; kommt eine diverse Fehlermeldung wenn ich Höhe und Breite des bitmaps setzen will und bei
bit := TBitmap.create; wird im Image wieder nur eine weiße Fläche ausgegeben ?!?
seltsam.. wenn einem noch was dazu einfällt wär ich dankbar
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#7

Re: 'leeres' Bitmap erstellen?

  Alt 18. Feb 2007, 16:28
Zitat von turboPASCAL:
Zitat von blawen:
Ich habe grad kein Delphi zur Hand, darum kann ich nur mal raten:
Code:
bit := NIL;
Damit verschiebst Du das Bitmap in das Nirvana. (Simple: nil = nix)
Das schreibe ich doch nicht umsonst?


Zitat von LeoSam:
bit := TBitmap.create; wird im Image wieder nur eine weiße Fläche ausgegeben ?!?
seltsam.. wenn einem noch was dazu einfällt wär ich dankbar
Ja, denn wenn ein Bitmap mit Create erstellt wurde ist es weis.
Du kannst dann mit diversen Zeichenopperationen dann deine Grafik darauf erstellen. (Siehe [oh]Canvas, TBitmap[/oh])

Delphi-Quellcode:
procedure TForm1.Bild_Zeichnen;
type
  PixArray = Array [1..3] of Byte;
var
  p: ^PixArray;
  h,w: Integer; bit: TBitmap;
begin
  bit := TBitmap.Create;
  bit.PixelFormat := pf24Bit;
  bit.Height := 100;
  bit.Width := 100;

  for h := 0 to Bit.Height - 1 do
  begin
    p := Bit.ScanLine[h];
    for w := 0 to Bit.Width - 1 do
    begin
      p^[3]:=255; //
      p^[2]:=w; // Beispiel: Farbverlauf von rot nach gelb
      p^[1]:=0; //
      Inc(p);
    end;
  end;

  Image1.Picture.Bitmap.Assign(bit);

end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
LeoSam
(Gast)

n/a Beiträge
 
#8

Re: 'leeres' Bitmap erstellen?

  Alt 18. Feb 2007, 17:02
Vielen Dank, das PixelFormat hat mir noch gefehlt...
geht jetzt
  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 09:57 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