AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia TIF schnell anzeigen mit Anti Aliasing
Thema durchsuchen
Ansicht
Themen-Optionen

TIF schnell anzeigen mit Anti Aliasing

Ein Thema von dataspider · begonnen am 27. Sep 2011 · letzter Beitrag vom 28. Sep 2011
Antwort Antwort
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#1

TIF schnell anzeigen mit Anti Aliasing

  Alt 27. Sep 2011, 09:46
Hallo,

ich habe einen Viewer für DocuWare (DMS) geschrieben.
Es funktioniert zwar, aber das Laden von TIF - Dateien dauert mir zu lange.
Ich habe mit Delphi 2010 erst über TWICImage angefangen.
Dann mit Graphics32. Das ist bis jetzt am Schnellsten.
Aber das Laden eines Bildes (TIF) dauert immer noch ca. 2 s.
Manchmal besteht aber ein Dokument aus bis zu 100 Seiten. Da ist das Blättern dann doch mühselig.

Meine jetzige Routine sieht so aus:

Delphi-Quellcode:
procedure TfrmTiffView.ShowPage;
Var
  R: TKernelResampler;
begin
  ImageTiff.BeginUpdate;
  try
    ImageTiff.Bitmap.BeginUpdate;
    try
      beiPageNumber.EditValue := PageNumber;
      ImageTiff.Bitmap.Assign(NIL);
      ImageTiff.Bitmap.LoadFromFile(FileNames[PageNumber -1]);
      R := TKernelResampler.Create(ImageTiff.Bitmap);
      //R.Kernel := TLanczosKernel.Create;
      R.KernelMode := kmTableLinear;
      R.TableSize := 16;
    finally
      ImageTiff.Bitmap.EndUpdate;
    end;
  finally
    ImageTiff.EndUpdate;
  end;
end;
ImageTiff ist TImageView32.

Mit VS 2010 c# geht das Laden z.B. fix. Aber ich will jetzt nicht Alles neu schreiben (und Delphi bin ich einfach schneller).

Kennt jemand einen Weg, TIF' s schnell anzuzeigen (auch Fremdkomponenten)?

Danke

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TIF schnell anzeigen mit Anti Aliasing

  Alt 27. Sep 2011, 10:07
Die Delphi-Codes für TIFF scheinen wohl etwas "lahm" zu sein.

ImageEn ist da auch nicht unbedingt schneller ... 'ne A4-Seite mit 300 DPI braucht da auch so etwa die 2 Sekunden.
Das, was nicht angezeigt werden muß und wo ich nur eine Seite brauche, mach ich (seit gestern, da hatte ich das TWICImage auch gefunden) nun ebenfalls über TWICImage.


Im Notfall kannste die Bilder doch auch vorrendern.
$2B or not $2B

Geändert von himitsu (27. Sep 2011 um 10:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TIF schnell anzeigen mit Anti Aliasing

  Alt 27. Sep 2011, 10:14
Hi,

bei TWICImage muss ich dann noch eine Routine für das AntiAliasing hinterherschieben.
Zumindest habe ich noch nicht herausbekommen, ob das anders funktioniert.
Und dann brauch das Assign in das TImage auch noch mal erheblich Zeit.

...und Danke für deine Antwort.

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TIF schnell anzeigen mit Anti Aliasing

  Alt 27. Sep 2011, 10:21
Zumindestens könntest du dir ja erstmal die Demos ansehn.

Aber nicht wundern, bei den vorkompilierten Demos hat irgendwer (schon seit Ewigkeiten) einige Exen vertauscht.
Da ist dann manchmal eine andere Demo in der EXE drin, als man erwartet (laut Datainame/Verzeichnis)
http://www.xequte.com/imageen/download/index.html
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#5

AW: TIF schnell anzeigen mit Anti Aliasing

  Alt 28. Sep 2011, 10:02
Ich habe vor paar Jahren Images im TIFF-Format aus einem Dokumentenarchiv per Delphi anzeigen müssen und hab dafür LibTiffDelphi genommen, sind die Delphi-Bindings der LibTiff. Das ging sehr schnell. Allerdings weiß ich nicht, wie es in der Delphivariante mit Antialiasing ausschaut.
Gruß, Jan
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#6

AW: TIF schnell anzeigen mit Anti Aliasing

  Alt 28. Sep 2011, 12:57
Bin zwar schon oft, auf das Wort antialiasing in Zusammenhang mit Bilder gestossen, darum, was bring antialiasing in Zusammenhang mit tif?
Achja implizit ist libtiff auch in der Vampyre imaging Lib enthalten.
Lg,
Jus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TIF schnell anzeigen mit Anti Aliasing

  Alt 28. Sep 2011, 14:53
Wenn man ein Bild verkleinert, dann gibt es mehrere Möglichkeiten.

- einfach und schnell > einfach jedes x-te Pixel nehmen in in das Zielbild kopieren
> geht schnell und das Bild bleibt schärfer

- langsamer und schöner > alle Pixel, welche sich innerhalb des Zielpixels befinden, zusammenrechnen und in das Pixel des Zielbildes kopieren
(und hier gibt es dann nochmal tausende Möglichkeiten, wie man die Pixel zusammenrechnet)
> Berechnungen dauern ein bissl länger, aber Details gehen nicht direkt verloren


Hast du z.B. eine dünne Linie auf dem großen Bild und verkleinerst dieses dann, kann es bei Variante 1 passieren, daß diese Linie nicht sichtbar ist, da sie eventuell gerade in den übersprungenen/ignorierten Pixeln liegt.
$2B or not $2B

Geändert von himitsu (28. Sep 2011 um 14:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:38 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