Entwickler-Ecke
Multimedia / Grafik - Aus Grossen JPG ein Mini Bild erstellen.
SHIFTER - Mo 17.03.03 00:10
Titel: Aus Grossen JPG ein Mini Bild erstellen.
Hallo,
ich versuche ganze zeit eine grosse JPG datei in ein Mini Bild umzuwandeln.
Z.B. aus 2500x1500 pix in 100x100 pix, (natürlich soll auch die Datei selber in sich verkleinert sein.)
Für eure hilfe bedanke ich mich in vorraus.
mfg
seba
Popov - Mo 17.03.03 00:45
Leider kenn ich deinen Kenntnis, deshalb vorerst die Kurzversion:
Jpeg in Bmp umwandeln
Dann mit Canvas.CopyRect in eine neue Bitmap kopieren, wobei eine Verkleinerung des ersten Rect-Wertes auch das Bild verkleinert
Dann Bitmap wieder in Jpeg umwandeln
Das wars. Wenn du Hilfe bei der Umsetzung brauchst, dann melde dich nocht mal.
FriFra - Mo 17.03.03 09:43
Mit CopyRect bekommst Du es nicht kleiner... nur einen Ausschnitt. Du musst StretchDraw verwenden.
anselm - Fr 25.04.03 15:12
ok ich will das gleiche machen also eine jpeg datei laden in ein image ist kein problem soweit bin ich schon sinn soll es sein ein bild per openpicturedialog zu wählen dann eine verkleinerung und neu erstellung eines bildes auf der festplatte um es später weiter zu verarbeiten dabei ist es wichtig das das bild die x,y verhältnisse behält was ich schon rechnerisch gelöst habe. nur wie wende ich dieses musst StretchCopy an?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| image1.Visible := false; image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); image1.Picture.Bitmap.Assign(image1.Picture); o_y := image1.Picture.Height; o_x := image1.Picture.Width; n_x := 150; n_y := round(o_y * (n_x / o_x)); arect.Left := 0; arect.top := 0; arect.Right := n_x; arect.Bottom := n_y; edit3.Text := inttostr(n_x); edit4.Text := inttostr(n_y); image1.Canvas.StretchDraw(arect,image1.Picture.Bitmap); image1.Visible := true; |
das ist mein versuch bis jetzt
anselm - Fr 25.04.03 15:34
danke hat sich erledigt habe es jetzt so gemacht!
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| procedure Tdaten.Button3Click(Sender: TObject); var bmp:TBitmap; jpeg:TJpegImage; o_x, o_y, n_x, n_y : integer; begin OpenPictureDialog1.Execute; if OpenPictureDialog1.FileName <> '' then begin Jpeg:=TJpegImage.Create; try jpeg.LoadFromFile(OpenPictureDialog1.FileName); bmp:=TBitmap.Create; try If jpeg.width>jpeg.Height then begin bmp.width:=width; bmp.height:=height; end else begin bmp.width:=height; bmp.Height:=width; end; n_x := 150; n_y := round(bmp.height * (n_x / bmp.width)); bmp.Width := n_x; bmp.Height := n_y; bmp.canvas.StretchDraw(Rect(0,0,n_x,n_y),jpeg); jpeg.assign(bmp); finally bmp.free; end; finally image1.Picture.Bitmap := bmp;
image1.Visible := true; end; end; end; |
anselm - Do 08.05.03 13:42
komisch also manchnaml klappt es manchmal nicht kann mir jemand helfen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!