AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bilder in einen Delphi5 Quellcode umwandeln?
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder in einen Delphi5 Quellcode umwandeln?

Ein Thema von Daether · begonnen am 20. Mär 2003 · letzter Beitrag vom 21. Mär 2003
Antwort Antwort
Seite 1 von 2  1 2      
Daether

Registriert seit: 20. Mär 2003
10 Beiträge
 
#1

Bilder in einen Delphi5 Quellcode umwandeln?

  Alt 20. Mär 2003, 09:15
Hi,
wir machne momentan in Delphi5 (scheiß Schule) Grafiken. Das dumme ist, dass wir keine fertigen Bilder importieren dürfen, sondern nur selbst welche erstellen dürfen mit den Delphi5-Befehlen. Ich hab da also mal ne Frage:
Wenn ich ein Bild im Paint erstelle, was für möglichkeiten hab ich da dieses ins Delphi5 rein zu kriegen?
Geht es, dass ich mir einen Quellcode von dem Bild erstellen lasse?
  Mit Zitat antworten Zitat
Steffen

Registriert seit: 19. Mär 2003
Ort: Hamburg
111 Beiträge
 
Delphi 7 Enterprise
 
#2
  Alt 20. Mär 2003, 10:03
Hallo!

"wir machne momentan in Delphi5 (scheiß Schule) Grafiken."
Was heist bei dir Grafiken machen?

Wenn ich das richtig verstehe möchtest Du aus einer ".bmp"-Datei einen Quellcode erstellen, der dir dann in Delphi das Bild zeichnet, z.B. mit Canvas usw...?

Ein einfaches Bitmap in irgendeinen Quellcode zu wandeln geht meiner Meinung nach nicht... zumindest noch nicht. Programmieren könnte man so ein kleines Tool, aber über den Sinn lässt sich sicher streiten!

Gruß,
Steffen
  Mit Zitat antworten Zitat
Daether

Registriert seit: 20. Mär 2003
10 Beiträge
 
#3
  Alt 20. Mär 2003, 13:21
Wir machen solche Sachen mit Canvas, wie du richtig vermutet hast.
Wir benutzten Befehle wie
Pie
Ellipse
Polygon

Udn ich woltle wisssen ob das geht, das ich ein Bild nehem und es in solche Befehle zerlegen lasse.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 20. Mär 2003, 13:33
Ui. Gehen tut es bestimmt. Aber stell dich auf eine etwas längere Entwicklungszeit ein. Du mußt ja das Bitmap analysieren, die Strukturen erkennen und dann in Code umsetzten. Viel Spaß.

Beispiel: Schwarzer Kreis auf weißen Hintergriund. Dein Programm muß jetzt erkennen, dass es sich um einen Kreis handelt, nicht um eine Ellipse, es muß den Radius, den Mittelpunkt und die Linienstärke bestimmen, um dann mit der entsprechenden Funktion den kreis auf dein Canvas zu zeichnen.

Ich hoffe, du hast jetzt eien Vorstellung davon, was das für einen Aufwand bedeutet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von BrainCode
BrainCode

Registriert seit: 18. Jan 2003
119 Beiträge
 
#5
  Alt 20. Mär 2003, 13:34
Du kannst - rein theoretisch - ein Programm schreiben, was für jeden Bildpunkt der Bitmap eine Delphi-Code-Zeile nach dem Schema
canvas.pixels[x,y] := Farbe erstellen. Aus einem Bild mit zwei schwarzen Pixeln in einer und zwei weißen in der nächsten Zeile würde so was rauskommen:
Delphi-Quellcode:
canvas.pixels[0,0] := #000000;
canvas.pixels[1,0] := #000000;
canvas.pixels[0,1] := #FFFFFF;
canvas.pixels[1,1] := #FFFFFF;
Ist allerdings ziemlich schwachsinnig
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6
  Alt 20. Mär 2003, 13:37
Das wäre natürlich eien Möglichkeit, aber ich würde dann mit Scanline arbeiten. Aber bei entsprechend großen Bitmaps würde es entsprechend lange dauern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 20. Mär 2003, 13:58
Wenn ich dich richtig verstehe, willst du dir eigentlich nur die Arbeit leichter machen, wie?
Aber du könntest es auch mit Source machen:
Delphi-Quellcode:
EinBitmap.LoadFromFile('DeineDatei.bmp'); // EinBitmap ist von Typ TBitmap
Canvas.Draw(EinBitmap, 1, 1);
So sollte es eigentlich funktionieren...

Chris
  Mit Zitat antworten Zitat
johannes

Registriert seit: 18. Dez 2002
24 Beiträge
 
Delphi 6 Personal
 
#8
  Alt 20. Mär 2003, 15:48
und wenn dein Lehrer dumm genug ist dann merkt er es gar nicht...
oder so wie bei uns ein Lehrer der ein Programm bei dem man die Jahreszahl eingibt und dann das Datum von Weihnschten in diesem Jahr erfährt, mit 1 benotet hat
  Mit Zitat antworten Zitat
Benutzerbild von Darty
Darty

Registriert seit: 8. Jun 2002
Ort: Kronau
731 Beiträge
 
#9
  Alt 20. Mär 2003, 20:08
Lol dass war sicher nicht schwer so ein Programm
Matthias Knebel
Mfg M. Knebel [-Darty-]
- Gehörlose Delphianer gibt es selten -
www.team-knebel.de
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#10
  Alt 21. Mär 2003, 02:51
Hallo!

Es gibt 2 Arten von Grafiken:

1. Bitmap-Grafiken. Fast alles in Windows arbeitet damit. Bei Bitmaps wird jeder Bildpunkt durch seine Farbe beschrieben. "Druck"-Vorgänge laufen z.B. so ab, daß Windows eine Bitmap erstellt und diese pixelweise an den sogenannten Drucker (im Grunde genommen ist das nur ein Matrix-Plotter) sendet.
Bitmaps über Code zu importieren läuft entweder auf pixelweise Übertragung hinaus oder wird Nobelpreis-verdächtig! Es gibt nämlich keine Möglichkeit, mit vertretbarem Aufwand "Strukturen" im Bild zu erkennen. Man kann nur eine vollständige Übereinstimmung (Dateien sind byteweise gleich) oder eine Ähnlichkeit (z.B. Gesichtserkennung) realisieren. Ein Programm, das auch nur geometrische Figuren eindeutig erkennt, überfordert selbt einen Pentium 20 mit 1000 GHz Takt (verfügbar vermutlich ab 2005) sowie 64 GByte RAM

2. Vektor-Grafiken. Diese sind ganz anders - hier wird eine Beschreibung gespeichert. Einfachstes Beispiel: echte Drucker. Die erhalten z.B. den Buchstaben "A" als ASCII- oder ANSI-Zeichen übermittelt und wissen dann, wie das Zeichen im eingestellten Zeichensatz auszusehen hat. Auch die Größe ergibt sich aus der eingestellten Schriftgröße. CAD-Systeme arbeiten genauso. Man erzeugt z.B. einen Kreis und kann ihn dann später vergrößern, verkleinern, verschieben, wieder vergrößern und die Qualität bleibt erhalten, da der Kreis im Programm nur aus der Position des Mittelpunktes und dem aktuellen Radius besteht, sein Bild entsteht erst bei der Ausgabe.
Für Vektorgrafiken kann man (wenn man das Dateiformat kennt) natürlich einen Übersetzer schreiben, der Delphi-Source generiert. Problem: in der Regel ist das Dateiformat "ein wertvolles Geschäftsgeheimnis des Herstellers" und darf deshalb nicht analysiert werden. Wenn man es heimlich "für private Zwecke" benutzen will, ergibt sich das Problem, daß das Format natürlich nirgends dokumentiert ist. Viel Spaß beim Zeichnen und analysieren von Probedateien.

Aus dem obengenannten ergibt sich natürlich auch: es ist leicht, eine Vektorgrafik in eine Bitmap umzuwandeln - aber das ist eine Einbahnstraße, zurück geht nicht. Die entsprechenden Grafikprogramme behelfen sich mit eingefügten Bitmaps, die beim Vergrößern die bekannten Treppen bilden.


Ein mir bekanntes Vektorgrafikprogramm ist StarDraw von der Firma StarDivision (war mal Hamburg, mal Lüneburg). Leider ist das a) etwas im Namen der DOSe - und b) Firma nebst Programmen an Sun verkauft (StarOffice, OpenOffice) - StarDraw für DOS dürfte legal nirgends mehr herzubekommen sein. Der Zeichner von OpenOffice scheint auch Vektor zu sein - am Besten mal in die Sources gucken und dann den Delphi-Generator schreiben
Wie heißt es so schön: FF - Fiel Fergnügen!


Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  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 12:43 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