AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi JPEG mit Image32 laden
Thema durchsuchen
Ansicht
Themen-Optionen

JPEG mit Image32 laden

Ein Thema von -NIP- · begonnen am 15. Okt 2005 · letzter Beitrag vom 21. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von -NIP-
-NIP-

Registriert seit: 6. Jun 2004
Ort: Aachen
254 Beiträge
 
Delphi 7 Personal
 
#1

JPEG mit Image32 laden

  Alt 15. Okt 2005, 11:59
Hi!

In letzter Zeit bin ich in richtiger Graphics32-Hochstimmung.
Ich habe jedoch jetzt ein Problem:
Trotz eingebundener JPEG-Unit klappt das Laden beim Image32
über
Image32.Bitmap.LoadFromFile('bla.jpg'); nicht. Es kommt folgender Fehler:
'Can''t allocate the DIB handle' Ich habe es schon mit einem JPEGImage probiert das auf das Bitmap drauf assigned wird, das erzeugt jedoch den gleichen Fehler. Und auch BitBlt ist nicht möglich, da das JPEGImage kein Canvas.Handle hat. Also wie lade ich jetzt JPEGS?
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 12:06
Ich bin mir nicht sicher (weill ich fast nur noch PNG benutze ), aber es sollte funktionieren, wenn du ein TJPEGImage erstellst und dessen Inhalt in ein TBitmap und diesen wiederum in dein TBitmap32 kopierst.
(War dieser Satz grammatikalisch korrekt ?)
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von -NIP-
-NIP-

Registriert seit: 6. Jun 2004
Ort: Aachen
254 Beiträge
 
Delphi 7 Personal
 
#3

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 12:15
Naja das habe ich gerade probiert. Auf einmal gibt es einen Fehler bei der Erstellung der MDIChildForm, wo das Ganze beim createn stattfindet, und zwar:"Falscher Parameter"
Also das JPEG Bild habe ich auf das Bitmap assigned und das Bitmap dann wiederum auf das Bitmap32 vom Image32.
Delphi-Quellcode:
if (ExtractFileExt(MainForm.OpenPictureDialog1.FileName)='.jpg')or
       (ExtractFileExt(MainForm.OpenPictureDialog1.FileName)='.jpeg')or
       (ExtractFileExt(MainForm.OpenPictureDialog1.FileName)='.JPG')or
       (ExtractFileExt(MainForm.OpenPictureDialog1.FileName)='.JPEG') then
    begin
      JPEGBild:=TJPEGImage.Create;
      JPEGBild.LoadFromFile(MainForm.OpenPictureDialog1.FileName);
      ZwischenBitmap:=TBitmap.Create;
      ZwischenBitmap.Width:=Breite;
      ZwischenBitmap.Height:=Hoehe;
      ZwischenBitmap.Assign(JPEGBild);
      JPEGBild.Free;
      Bild_Img32.Bitmap.Assign(ZwischenBitmap);
      ZwischenBitmap.Free;
      exit;
    end;
Christian
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 12:23
Ihr solltet bedenken, daß Image32.Bitmap ein Bitmap (*.bmp) verlangt. Ein TJPEGImage ist von TGraphic abgeleitet (hab grad kein Delphi zum nachschauen da) also solltest du es auch Image32.Graphic assignen.

Es sollte auch Image32.Picture.LoadFromFile oder sowas geben... Damits geht es dann wohl... aber alles unter vorbehalt, da ich nur TImage benutze, wo selbiges geht
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Benutzerbild von -NIP-
-NIP-

Registriert seit: 6. Jun 2004
Ort: Aachen
254 Beiträge
 
Delphi 7 Personal
 
#5

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 12:54
Das Problem ist, dass es kein Image32.Graphic gibt und das Gegenstück zu Image.Picture.LoadFromFile ist Imag32.Bitmap.LoadFromFile , welches wie gesagt schon versagt hat .
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 13:08
Image321.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName) + 'ava.jpg'); Klappt bei mir einwandfrei . Vielleicht liegt es auch am JPEG? Versuch es mal mit dem Anhang.

@MarcoWarm: TJPEGImage erstellt intern ein TBitmap, man kann es also ohne Probleme einem anderen Bitmap zuweisen.
Angehängte Grafiken
 
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von -NIP-
-NIP-

Registriert seit: 6. Jun 2004
Ort: Aachen
254 Beiträge
 
Delphi 7 Personal
 
#7

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 13:37
Ahaaaa! Ich hab den Bösetäter gefunden:
Anscheinend gibt es einen Fehler bei der Prozedur, die mir die Breite und die Höhe des geöffneten Bildes holt. Der Fehler tritt aber nur mit JPEGS auf.
Hier ist die Prozedur:
Delphi-Quellcode:
procedure AbmessungenErmitteln(aFile:String);//Abmessungen des
var //geöffneten
  fileheader: TBitmapfileheader; //Bildes errechnen
  infoheader: TBitmapinfoheader; //und abspeichern
  s: TFilestream;
begin
  s := TFileStream.Create(aFile, fmOpenRead);
  try
    s.Read(fileheader, SizeOf(fileheader));
    //Nach dem filehaeder beginnt der infoheader
    s.Read(infoheader, SizeOf(infoheader));

    Breite:=infoheader.biWidth;
    Hoehe:=infoheader.biHeight;


  finally
    s.Free;
  end;

end;
Christian
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

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

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 14:34
Wie wäre es nach dem Laden mit TJPEGImage.Width bzw. .Height?

\\edit: Mit der obigen Funktion kann das ja auch garnicht gehen... Du versuchst einen *.bmp Header auszuwerten, aber ein JPEG-Header wird deutlich anders aussehen - somit steht nachher auch völliger Quatsch in deinen Variablen.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von -NIP-
-NIP-

Registriert seit: 6. Jun 2004
Ort: Aachen
254 Beiträge
 
Delphi 7 Personal
 
#9

Re: JPEG mit Image32 laden

  Alt 15. Okt 2005, 15:48
Wenn ich die Größe des JPEGs einstellen möchte, sagt er die:"Die Größe kann nicht verändert werden" oder sowas. Wo kann man sich denn die Fileheader anschauen, um eventuell selber die "Abmessungen"-Funktion zu erweitern?
Christian
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

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

Re: JPEG mit Image32 laden

  Alt 16. Okt 2005, 03:37
Du kannst die Höhe und Breite eines TJPEGImages nicht ändern. Dazu musst du zunächst zu einem TBitmap assignen und dann mit einer beliebigen Methode stretchen. Wenn du das wieder als jpeg speichern willst, musst du es vom Bitmap aus wieder einem TJPEGImage assignen.

In Sachen Fileheader: www.wotsit.org

Warum willst du die Größe vor dem Laden des Jpegs wissen?
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  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 19:24 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