nochmal bitmap

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

nochmal bitmap

Beitrag von khh »

alsooo,
ich erstelle ein TBitmap und lese ein vorhandenes Bild mit
mybmp.loadfromfile ein.
Das Bitmap welches ich mit :
myBmp.savetofile
auf die Platte schreibe ist identisch mit der Urspungsdatei, sprich eine Auflösung von 300 pixel/Zoll, 100x100 pixel und 0,85 x 0,85 cm Dateigrösse.
Soweit so gut.

Jetzt erstelle ich ein Timage _ohne_ ein bmp einzulesen.
ich setze width und height auf je 100 und mybmp.PixelFormat := pf24bit;
jetz hat das ausgabefile eine auflösung von 2,5 pixel/zoll bei 100x100 pixel und 100x100 cm :-(

was mach ich falsch?
Danke für eure Info


Gruss KH

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Was machst du denn genau?
TImage ist ja nur ein visuelles "AnzeigeDings".
Als image1.Width sagt nur, vieviel Platz das Timage auf der Form einnimmt.
Wenn du die Breite des Bitmaps setzen willst, musst du
Image1.Picture.Bitmap.Width sezten.
Ob das mit dem Pixelformat setzen unter GTK funzt, ist zu bezweifeln.
Die Dinger haben meistens pfDevice.

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo
Jetzt erstelle ich ein Timage
sorry, sollte natürlich TBitmap heissen
Gruss KH

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Wieso setzt du denn das Pixelformat?
Wenn du das nicht tust, ist es dann richtig?

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo,
nee, egal ob ich das Format setze oder nicht, es ändert sich nix an der Ausgabedatei.
Gruss KH

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Ich glaube, dass die Auflösung bei BMP normalerweise wurscht ist.
http://de.wikipedia.org/wiki/Windows_Bitmap" onclick="window.open(this.href);return false;
Siehe "Horizontale Auflösung des Zielausgabegerätes in Pixel pro Meter; wird aber für BMP-Dateien meistens auf 0 gesetzt."
Wichtig ist doch dass es 100x100 Pixel hat.
Wofür brauchst du's denn?
Wenn's stört, mach nen Bugreport.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ach so, deine Grafik wird also nicht verkleinert, richtig ? Wenn ja nutze
StretchBlt
erstelle zu vor eine TBitmap mit deiner Gewünschten Größe, kopiere dann per StretchBlt
den Gewünschten bereich der Grafik den du haben möchtest.(Du kannst auch das gesammte bild nehmen)
Die Parameter sind einige.
Dann speicher das Bild einfach ab, wenn du ein anders Format haben möchtes als bmp dann würde ich dir OpBitmap(ist von Theo) empfehlen und meine uOpext(ist von mir) die es hier
gibt mit Hilfe meine unit kannst du die Grafik in ein bilibiges Bild Format speichern, die Datei Endung gibt das Format dabei an.
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Nein Pluto, hier geht's um die Auflösung.
Das BMP hat ja 100x100px, nur die BMP-Header Werte
biXPelsPerMeter, biYPelsPerMeter sind falsch. Die sind aber meistens unwichtig.

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@pluto
ach so, deine Grafik wird also nicht verkleinert, richtig
das ist eine andere Sache
hier gehts um die Auflösung.
Ich brauche ein Bild, egal ob bmp oder sonstwas in bestmöglicher Qualität.
Das Bild muss später in einem pdf -file gedruckt werden, evtl. bis Grösse A0, deshalb denke ich, je besser die Qualität des Bildes, umso besser für die spätere Druckqualität.

100x100 pixel war auch nur ein Beispiel, die endgültigen files können uim ein vielfaches Grösser sein.
Wichtig ist mir in erster Linie eine optimale Qualität.

Gruss KH

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

khh hat geschrieben: Ich brauche ein Bild, egal ob bmp oder sonstwas in bestmöglicher Qualität.
Das Bild muss später in einem pdf -file gedruckt werden, evtl. bis Grösse A0, deshalb denke ich, je besser die Qualität des Bildes, umso besser für die spätere Druckqualität.
Ist deine Frage jetzt geklärt?
Die Druckqulität hängt mit der "Pixelmenge" zusammen.
Wieviele das letztendlich pro Centimeter / Inch sind, hängt von der Skalierung (im PDF) ab.
Beim Drucken spricht man von DPI, auf dem Bildschirm von PPI (Dots/Pixel per Inch).
Je mehr Pixel pro Ausdehnung desto feiner der Druck (bis zu einem gewissen Grad, der wiederum von den Fähigkeiten des Druckers abhängt).
Das Bitmap muss die Auflösung nicht unbedingt vorgeben.

Edit: Wenn du wirklich die Auflösung ins Bitmap schreiben willst, kannst du das so auf dem Bitmap Stream machen:

Code: Alles auswählen

Procedure ChangeBmpPPM(AStream:TStream; Xppm, Yppm:integer);
var bih:TBitMapInfoHeader;
begin
 AStream.Position:=SizeOf(TBitmapFileHeader);
 AStream.Read(bih,sizeof(TBitMapInfoHeader));
 bih.biXPelsPerMeter:=Xppm;
 bih.biYPelsPerMeter:=Yppm;
 AStream.Position:=SizeOf(TBitmapFileHeader);
 AStream.Write(bih,sizeof(TBitMapInfoHeader));
 AStream.Position:=0;
end;
Zuletzt geändert von theo am So 27. Apr 2008, 12:39, insgesamt 1-mal geändert.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ma ne ganz dumme frage, wiso erstellst du nicht gleich ein pdf, schau dir mal die PowerPDF Komponenten an ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo
danke dir, ich werd da so mal ausprobieren.
@christian
wiso erstellst du nicht gleich ein pdf,
ich brauche die Bilder mehrfach, z.B. als Vorlage für jpgs, die fürs Internet weiter verwendet werden sollen, und als Vorlage fürs PDF,welches gedruckt werden soll.
Mir ist schon klar, dass ich für das Internet keine Superqualität brauche, aber ich dachte halt ich erstelle _eine_ vorlage und verarbeite die dann ensprechend der Verwendung weiter.
Zur Erstellung des PDF hab ich dann auch schon an Powerpdf gedacht.

Gruss KH

Antworten