AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Update Problem bei TImage
Thema durchsuchen
Ansicht
Themen-Optionen

Update Problem bei TImage

Ein Thema von bdaehn · begonnen am 22. Jan 2004 · letzter Beitrag vom 22. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
bdaehn

Registriert seit: 22. Jan 2004
Ort: Wiesbaden
9 Beiträge
 
Delphi 7 Enterprise
 
#1

Update Problem bei TImage

  Alt 22. Jan 2004, 00:38
Hallo,

ich habe folgendes Problem:

Ich benutze ein TImage-Objekt (Form1.Image1), in dem JPEGs angezeigt werden, wobei sich das JPEG ständig ändert (eine Art 'pseudo' stream).

Ich möchte nun auf Button-Click den aktuellen Kontent in ein zweites TImage (img) kopieren, um es aus dem dann ggfs. später abzuspeichern.

Habe dafür folgendes getan:

Delphi-Quellcode:
img.Picture.Assign(Form1.Image1.Picture);
img.Picture.SaveToFile('c:\temp\bla.jpg');
Da ganze klappt allerdings nur eingeschränkt und zwar tritt der folgende Effekt auf: das 2. TImage zeigt immer nur das erste (also das per Object-Inspector zugewiesene) Bild des anderen TImage Objektes an - alle anderen (nachgolgenden) Bilder werden ignoriert.

Was mache ich falsch ? Liegt es etwa daran, dass ich JPEGs statt Bitmaps verwende ? Oder muss ich das TImage noch refreshen oder updaten ?

Vielen Dank
</bjoern>
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 00:44
Grundsätzlich würde ich mit 2 TBitmaps arbeiten, die im Hintergrund alles erledigen, und den TImages nur per "Assign" zuweisen. Ein TBitmap hat ja auch ein "SaveToFile", und ich hatte bisher keine Last mit einem derartigen Problem. Vielleicht hilfts!


gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#3

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 00:47
Delphi-Quellcode:
img.Picture.Assign(Form1.Image1.Picture);
img.Picture.Dormant;
img.Picture.SaveToFile('c:\temp\bla.jpg');
Vielleicht hilft es. Der "Denkfehler" an der Sache ist das nach dem .Assign() beie TImages auf ein und das selbe TJpegImage verweisen. Eine Änderung an einem der TJpegImage in beiden TImage's wird also BEIDE TImages betreffen.

Gruß hagen
  Mit Zitat antworten Zitat
bdaehn

Registriert seit: 22. Jan 2004
Ort: Wiesbaden
9 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 00:47
Hallo,

danke für deinen tip - problem ist nur, dass ich in dem 1. TImage halt JPEGs darstellen muss, da ich sie von einem Webserver bekomme.

Gruss
</bjoern>
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 00:56
Ööööhm, ein TImage kann von Hause aus mit jpeg's nichts anfangen, oder!? Also muss da doch schon eine Konvertierung stattfinden. Also warum nicht an ein TBitmap?

@Hagen: Hmmm, also ich habe jetzt schon des öfteren mit mehreren Puffer-Bitmaps gearbeitet. Und diese waren nach einen jeweiligen Assign + einer Zeichenoperation nicht mehr gleich. Verhält sich TBitmap die anders als TImage.TPicture.TBitmap? Sollte mich wundern. Oder bewirkt das Zeichnen die "reale" Trennung? Oder bin ich einfach nur zu müde, um mich recht zu erinnern? *nichglaub*



gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
bdaehn

Registriert seit: 22. Jan 2004
Ort: Wiesbaden
9 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 00:58
Zitat von negaH:
Delphi-Quellcode:
img.Picture.Assign(Form1.Image1.Picture);
img.Picture.Dormant;
img.Picture.SaveToFile('c:\temp\bla.jpg');
Vielleicht hilft es. Der "Denkfehler" an der Sache ist das nach dem .Assign() beie TImages auf ein und das selbe TJpegImage verweisen. Eine Änderung an einem der TJpegImage in beiden TImage's wird also BEIDE TImages betreffen.

Gruß hagen
Danke! Gerade einmal ausprobiert!

Denke, du meinst "img.Picture.Bitmap.Dormant;" oder ? Hat jetzt den Effekt, dass das 2. TImage gar nicht mehr anzeigt, oder mach ich was falsch ?

</bjoern>
  Mit Zitat antworten Zitat
bdaehn

Registriert seit: 22. Jan 2004
Ort: Wiesbaden
9 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 01:02
@dizzy:

Also ich kann ohne Probleme Zuweisungen wie

Delphi-Quellcode:
  Jim: TJPEGImage;

  { some intelligent code here ... }

  Image1.Picture.Graphic:=Jim;
machen...

Gruss
</bjoern>
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#8

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 01:08
Tja das is'es wieder, das Problem mit den TJpegImages und deren ziemlich abgespecktem Interface. Leider unterstützen die TJpegImage's nicht alle wichtigen Features.

Am besten mal folgendes probieren

Delphi-Quellcode:

  with Img.Picture.Bitmap do
  begin
    Width := Image1.Picture.Width;
    Height := Image1.Picture.Height;
    Canvas.Draw(0, 0, Image1.Picture.Graphic);
  end;
  Image1.Picture.SaveToFile(...);
Statt Img zu speichern, wird es nur zur Anzeige benutzt. Wir speichern aus Image1 heraus.

Gruß Hagen
  Mit Zitat antworten Zitat
bdaehn

Registriert seit: 22. Jan 2004
Ort: Wiesbaden
9 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 01:17
@negaH:

Hmmm...bringt leider auch nicht viel - gleicher Effekt, es wird nicht das aktuelle Bild kopiert oder angezeigt oder abgespeichert.

Sieht so aus als würde in den internen Buffern der 1. TImages nicht der aktuelle Inhalt, der aber auf dem Bildschirm ausgegeben wird, stehen - aber das kann doch gar nicht sein oder ?

Wenn ich mittels

Form1.Image1.Picture.SaveToFile('c:\temp\huhu.jpg'); speichere, bekomme ich auch nicht das aktuelle Bild...

Das jeweils neue JPEG schreibe ich übrigens via

Delphi-Quellcode:
Jim: TJPEGImage;
Image1.Picture.Graphic:=Jim;
Gruss
</bjoern>
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#10

Re: Update Problem bei TImage

  Alt 22. Jan 2004, 01:23
Versteh ich nicht. Nachdem du das JPEG geladen hast zeigst du es mit Image1.Picture.Gpahic an. Somit müsste man mit Image1.Picture.SaveToeFile() diese auch sofort wieder speichern können.

Ich habe nun schon einiges mit TImage + TJpegImage + TBitmap gemacht, aber sowas ist mir noch nie untergekommen. Hast du eventuell an andere Stelle, eg. Events von TImage1 etc, was stehen ?

Vielleicht solltest du auch das originale TJpegImage das geladen wurde sofort speichern.

Ah, da fällt mir ein, arbeitest du mit Threads ? heist werden die Lade-,Anzeige-, Speicher-Operation in unterschiedlichen Threads ausgeführt ?

Gruß Hagen
  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 09:05 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