AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bild einlesen überprüfen, und neu zusammensetzen

Bild einlesen überprüfen, und neu zusammensetzen

Ein Thema von Michael80 · begonnen am 12. Feb 2018 · letzter Beitrag vom 14. Feb 2018
Antwort Antwort
Seite 2 von 2     12
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#1

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 13. Feb 2018, 13:40
Man braucht keine Komponenten dafür. Hier reicht das simple Standard-Canvas von Delphi, insbesondere solange du kein Floyd-Steinberg oder Stukki machen möchtest sondern Nearest-Neighbor mit linearer oder quadratischer Abweichungsberechnung.

Ich verstehe nicht mal genau, warum man dafür Delphi braucht. Viel einfacher:
Einmalig durchzuführen:
- Nimm dir ein Grafikprogramm deiner Wahl, zeichne alle verfügbaren Farben ein und speichere die Datei als PNG.
- Lass PNGOUT einmal nur mit Force-Parameter (weil kleine Palettenbilder größer sind als Echtfarben) durchlaufen, um eine Palette zu erstellen.
- Exportiere die Palette mit einem Grafikprogramm deiner Wahl, z.B. IrfanView.
Für jedes Bild durchzuführen:
- Lade dein gewünschtes Bild.
- Stelle die Größe ein.
- Importiere die Palette.
Das mit der Zuordnung der Farben zu den Nummern dürfte doch jeder auch so hinkriegen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.371 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 13. Feb 2018, 14:39
Probiers mal mit Komponenten XY, mach Z, aber anscheinend ist das hier mittlerweile zuviel verlangt.
Ich habe mal für dich Google benutzt.
https://www.imageen.com/
Peter
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 13. Feb 2018, 15:32
Ein erster Ansatz. Der Anfang ist halt immer das Schwierigste:
Delphi-Quellcode:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.jpeg;

type
  TForm2 = class(TForm)
    Image1: TImage;
    procedure Image1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

const
  // Bügelperlen-Steckplatten Höhe
  cHeight = 30;
  // Bügelperlen-Steckplatten Breite
  cWidth = 30;

procedure TForm2.Image1Click(Sender: TObject);
var
  ImageFileName: string;
  TransformedBitmap: TBitmap;
  DestinationRect: TRect;
  OrignialPicture: TPicture;
begin
  OrignialPicture := TPicture.Create;
  try
    // hier muss der Pfad zur Bildatei rein!
    ImageFileName := 'C:\Users\...blablabla';
    OrignialPicture.LoadFromFile(ImageFileName);

    TransformedBitmap := TBitmap.Create;
    try
      TransformedBitmap.SetSize(OrignialPicture.Width, OrignialPicture.Height);

      DestinationRect := Rect(0, 0, cWidth, cHeight);
      TransformedBitmap.Canvas.StretchDraw(DestinationRect, OrignialPicture.Graphic);

      // der Zaubertrick:
      TransformedBitmap.SetSize(cWidth, cHeight);

      // Bild in TImage auf Formular anzeigen:
      Image1.Picture.Assign(TransformedBitmap);

      // auf Farbpaletten, Seitenverhältnis, abspeichern und ausdrucken kommen wir dann zu sprechen, wenn du soweit bist!
    finally
      TransformedBitmap.Free;
    end;
  finally
    OrignialPicture.Free;
  end;
end;

end.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 13. Feb 2018, 15:40
Ansonsten vielleicht den ersten Google-Treffer für "Bügelbild Konverter" verwenden:
http://camerakind.blogspot.de/2015/0...fotos-diy.html

Die darin beschriebene Demo-Version der Software kann zwar nicht abspeichern oder ausdrucken, aber das ist ja nun kein wirkliches Hindernis (Druck-Taste -> Paint -> Drucker).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#5

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 13. Feb 2018, 15:48
Spezialkomponenten sind ja nicht unbedingt nötig.

Das Bild runterrechnen (zoom) auf das gewünschte Format/Größe ... am Besten gleich 1 Pixel = eine Perle
Bei Google suchendelphi resize image smooth

Wenn Bild auf Größe der Perlen (x*x Pixel = eine Perle) oder garnicht runtergerechnet, dann im Bereich einer Perle den Farb-Mittelwert der Pixel berechnen.

Dann für diese Farbe (des einen Pixel oder Mittelwert der Pixel) die Farbe der Perle bestimmen, welche dem am nächsten kommt.

bei 1 Pixel oder ungezoomt > Perlen in neues Bild zeichnen
bei x*x Pixel > die x*x Pixel mit der einen Perle übermalen und vorher den Hintergrund dort löschen



ganz billig:
* Bild mit Interpolation auf 1 Pixel pro Perle zoomen
* Bild ohne Interpolation auf x*x Pixel pro Perle vergrößern
* sich gedanklich (nach dem Drucken) selbstständig zum großen Pixel die ähnlichste Pixelfarbe ausdenken
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (13. Feb 2018 um 15:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.371 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 14. Feb 2018, 07:21
Wie würdet ihr vorgehen?
Ansonsten würde ich erstmal die Fotos einlesen, auf das vorgegebene Format Rastern und ausdrucken.
Komisch, mir kommt es vor, als würden die anderen genau das, was ich vorgeschlagen habe, in ihrem Code/Erklärungen vorkauen.
Sorry, dass ich dir keinen Code geliefert habe.
btw:
Kauf dir doch für 400 Dollar plus MwSt eine Komponente!
Das habe ich nie geschrieben. Du hattest geschrieben, dass du erwartest, dass man dir eine Komponente xy nennt, mit der du z machen sollst. Ich habe die den Link zu einer entsprechende Komponente geliefert. Nicht mehr und nicht weniger.
Peter

Geändert von Jasocul (14. Feb 2018 um 07:32 Uhr) Grund: Zitat-Lüge richtig gestellt
  Mit Zitat antworten Zitat
Michael80

Registriert seit: 20. Nov 2003
Ort: Treuchtlingen
72 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 14. Feb 2018, 20:48
ja Peter alles gut, ich habs kapiert, Danke

Ja TiGü das Programm kenn ich. Grundsätzlich gings mir wirklich im Codebrocken, da ich bei Bilder wirklich nicht weiß/wusste wie ich hätte Anfangen sollen, ich denke dass ich so zumindest einen Ansatz habe auf dem ich aufbauen kann.
Wer kämpft kann verlieren, wer nicht kämpft hat schon verloren

Geändert von Michael80 (14. Feb 2018 um 20:50 Uhr)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 14. Feb 2018, 22:15
im swiss delphi center ist der source code um eine Bitmap -zu -resamplen hier
http://www.swissdelphicenter.ch/de/showcode.php?id=2403
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Bild einlesen überprüfen, und neu zusammensetzen

  Alt 13. Feb 2018, 15:44
Ich möchte keine 10 Euro für ein bereits existierendes Programm ausgeben.
Kauf dir doch für 400 Dollar plus MwSt eine Komponente!
Delphi-PRAXiS at its best.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12

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 05:31 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