AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bildgröße verändern
Thema durchsuchen
Ansicht
Themen-Optionen

Bildgröße verändern

Ein Thema von BigBen · begonnen am 19. Dez 2007 · letzter Beitrag vom 19. Dez 2007
Antwort Antwort
BigBen

Registriert seit: 12. Dez 2007
Ort: Nassenfels
11 Beiträge
 
#1

Bildgröße verändern

  Alt 19. Dez 2007, 12:03
Hallo,
ich möchte 50 Pixel der rechten Seite eines Bitmaps abschneiden.
Mir ist aber nicht klar, wie die Zuweisung der cut-Daten hinhaut. (Dat is meine erste Woche, die ich mich mit Delphi beschäftigen muss )
Der folgende Code lässt sich zwar compilieren, gibt dann aber einen Fehler aus:

---------------------------
Anwendungsfehler
---------------------------
Exception EAccessViolation in Modul Bmp_resize.exe bei 000153B1.

Zugriffsverletzung bei Adresse 004153B1 in Modul 'Bmp_resize.exe'. Lesen von Adresse 00000001.

Delphi-Quellcode:
program Bmp_resize;

uses
  Windows, Graphics;

{$R *.res}

var
  SourceBitmap : TBitmap;
  TargetBitmap : TBitmap;
  Cut : TRect;

begin
  SourceBitmap.LoadFromFile('ausweis.bmp');
  TargetBitmap.Width := Cut.Right - Cut.Left;
  TargetBitmap.Height := Cut.Bottom - Cut.Top;

  BitBlt(TargetBitmap.Canvas.Handle, 0, 0, 50, 0, SourceBitmap.Canvas.Handle, 0, 0, SRCCOPY);
  TargetBitmap.SaveToFile('ausweis.bmp');
end.
Bin über jede Hilfe dankbar

LG
Benny
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Bildgröße verändern

  Alt 19. Dez 2007, 12:13
Du hast die Objekte nicht instanziiert.
Delphi-Quellcode:
program Bmp_resize;

uses
  Windows, Graphics;

{$R *.res}

var
  SourceBitmap : TBitmap;
  TargetBitmap : TBitmap;

begin
  SourceBitmap := TBitmap.Create;
  TargetBitmap := TBitmap.Create;
  try
    SourceBitmap.LoadFromFile('ausweis.bmp');
    TargetBitmap.Width := SourceBitmap.Width - 50;
    TargetBitmap.Height := SourceBitmap.Height;

    BitBlt(TargetBitmap.Canvas.Handle, 0, 0, 50, 0, SourceBitmap.Canvas.Handle, 0, 0, SRCCOPY);
    TargetBitmap.SaveToFile('ausweis.bmp');
  finally
    SourceBitmap.Free;
    TargetBitmap.Free;
  end;
end.
[edit] Vertipper korrigiert [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Bildgröße verändern

  Alt 19. Dez 2007, 12:14
Objekte müssen erzeugt und wieder freigegeben werden


Delphi-Quellcode:
var MyTest: TEinTyp;
...
  MyTest := TEinTyp.Create();
...
  MyTest.Free
...ausserdem was erwartest du von deiner Variablen Cut?
...es hat keine Wert zugewiesen bekommen, was soll es nach deiner Meinung bewirken?
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
BigBen

Registriert seit: 12. Dez 2007
Ort: Nassenfels
11 Beiträge
 
#4

Re: Bildgröße verändern

  Alt 19. Dez 2007, 12:29
Dat funktioniert eigentlich wunderbar. Das Bild wird um 50 Pixel verkleinert, aber das TargetBitmap ist nur ein leerer Kasten.
Sorry, bin halt noch n blutiger Delphi - Beginner.

Gruß
Benny
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Bildgröße verändern

  Alt 19. Dez 2007, 12:32
*Argh* , Sch*** Copy & Paste.BitBlt(TargetBitmap.Canvas.Handle, 0, 0, TargetBitmap.Width, TargetBitmap.Height, SourceBitmap.Canvas.Handle, 0, 0, SRCCOPY); So sollte es klappen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BigBen

Registriert seit: 12. Dez 2007
Ort: Nassenfels
11 Beiträge
 
#6

Re: Bildgröße verändern

  Alt 19. Dez 2007, 12:43
1000 Dank!
Dat is genau dat wat ich brauche!
Schön, dass es noch Profis gibt, die den Anfängern unter die Arme greifen.
  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 16:21 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