AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Verlustfreies Zoomen von Bildern (Interpolieren)
Thema durchsuchen
Ansicht
Themen-Optionen

Verlustfreies Zoomen von Bildern (Interpolieren)

Ein Thema von Stanlay Hanks · begonnen am 18. Okt 2003 · letzter Beitrag vom 20. Okt 2003
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#1

Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 22:31
Hallo zusammen! Ich habe da ein Problem. Und zwar hab ich heute morgen ein Bitmap auf meiner HD befunden, das ich mir gerne als Cover Bild für eine Audio CD nehmen wollte. Nur das war zu klein => wenn ich es vergrößere wird es unscharf usw. Jetzt hab ich im Internet nach Tools gesucht, die verlustfrei vergrößern können. Da gibts einige. (u.A. das Programm S-Spline) Allerdings kosten die alle ne Menge. (ab 39 € was ich gesehen hab) Sind aber dafür auch gut. Naja...auf jeden Fall hab ich mir dann ganz profisorisch eine Prozedur zusammengeschustert, die ein Bild auf die doppelte Größe vergrößert. Die hat so funktioniert: Zuerst werden die Pixel des Original Bildes auf jedes 2. Pixel eines zweiten Images gemalt. Dadurch entsteht zwischen den Pixeln jeweils ein weißes, freies Pixel. Das hab ich gefüllt, indem ich den Mittelwert zwischen den Farben links und rechts von diesem Pixel berechnet hab. SO gabs einen Farbübergang. Jetzt habe ich nur folgende Probleme:
a) Ich hab das ganze mit Pixels[x,y] gemacht statt mit ScanLine (Weil ich mich mit Scanline nicht auskenne )
b) Diese Prozedur braucht dafür, ein 600x600 pixel bild auf 1200x1200 pixel zu zoomen ganze 10 Minuten (!!!).
Deshalb habe ich mir gedacht, ich frage einfach mal nach, ob ihr mir helfen könntet, eine neue Prozedur, die sowas kann, zu schreiben. Damit mich keiner falsch versteht: Ich will keinesfalls ganzen (oder kommentierten) Source, sondern ich würde mich schon sehr über Denkanstöße zu dem Thema freuen. Außerdem würde mich interessieren, ob das was ich da gemacht habe, überhaupt was mit "Interpolation" zu tun hat.

Danke schon mal. Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 22:46
schau mal hier, da hat man sich schon mit sowas beschäftigt.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 22:49
Hi,

mein Lexikon verriet mir folgendes:
"[...]2) Mathematik: Einschaltung von Zahlenwerten zwischen die Zahlen einer gegebenen Folge, damit sie so glatt wie möglich verläuft."
Demnach hast dus prinzipiell schonmal sehr richtig gemacht.
Hattest du schonmal Gelegenheit eines der professionellen Programme auszuprobieren? Vielleicht brauchen die ja genauso lange...
Und mich würd mal interessieren was Scanline ist...
U.U. ist dein Algorithmus auch nicht effektiv genug, es gibt viele verschiedene Wege einen Vorgang unter verschiedenen Verhältnissen zu wiederholen... Rekursion, verkettete Schleifen, verschachtelte Schleifen, vielleicht sind auch die Befehle die du verwendest zu langsam.
Aber ehe du keinen Vergleichswert hast, kannst du nicht sagen ob dein Prog zu lange braucht oder nicht.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 22:50
Hallo. Ich weiß schon, dass es diesen thread gibt...Ich hab ja vor ner halben Stunde ne Frage drinnen gestellt Aber ich dachte, das Antialiasing was anderes wäre, als Interpolation.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 22:54
Hups, hat sich wohl geklärt (siehe CodeLib)...
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 23:01
Hallo! NEIN es hat sich noch nicht geklährt. Aber erstmal danke für deine ausführliche Antwort. Das war schon recht aufschlussreich für mich. Zu deiner Frage: Ja ich hatte schon Gelegenheit, S-Sline auszuprobieren. Da sieht man, wie sich die Pixel Reihe für Reihe von oben nach unten aufbauen. Und das ganze geht sehr schnell (5 Sekunden max!). Ich habe halt einfach immer in einer For Schleife (Das "to" konnte schon mal bis 1200 gehen) für die Reihen (von links nach rechts) und in einer anderen Schleife für die Spalten (von oben nach unten) die von mir beschriebenen Sachen durchgeführt...Das in der Code Lib glaube ich is doch was anderes, oder?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 23:21
Interpolation: Berechnug von Zwischenpixeln (Bildvergrößerung)
Antialiasing: ist im Grunde eine Kantenglättung (kann man aber gut ber der Bildvergrößerung/-verkleinerung verwenden)

Das Beispiel in der CodeLib ist allerdings nur für's reine Antialiasing ausgelegt. (nur Gättung, kein Zoom)

Bei dem anderen Thema kannst'e dir aber einige Anregungen für die Beschleunigung deiner Berechnung holen. (ScanLine, kein Round...) Deshalb hatte ich auch auf den Beitrag und nicht zur CodeLib verlinkt.

Es gibt aber auch zusätzliche Komponenten mit denen man Zoomen kann. (die in Delphi vorhanden glätten ja nicht)
Hab' jetzt leider keine Namen da, ist aber bestimmt schon hier im Forum schon mal aufgetaucht. (unter Grafikbearbeitung oder so)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 18. Okt 2003, 23:33
Hallo. Danke für die Antwort. Ich wollte das eigentlich ohne extra Komponenten machen, weil ich dabei was lernen will. Im Moment brüte ich gerade über dem OI Eintrag von Scanline und dem Beispiel dazu.
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 19. Okt 2003, 00:04
Hm, dann hab ich das wohl verwechselt.
Wär ich nich so müde, würd ich mich jetz noch dahinterklemmen, aber ich werd wohl lieber mal in die Heia gehn.
Viel Erfolg wünsch ich noch,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 19. Okt 2003, 00:31
Bin wohl auch schon zu müde.
Dachte schon ich spinne - 10 = 2 (Signatur@S - tefano)
Hast mich jetzt total aus'm Konzept gebracht.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 17:19 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