JPG -> BMP konwert i poszarzenie Image

0

Witam!
Męczę się od dłuższego czasu z jednym kodem. Ładuję JPG do Image i wycinam potem kawałek jego do drugiego Image wrzucając. Niestety to na JPG nie chce działać bo musi być przekonwertowany na BMP. Obrazki wyświetlam z Filelistbox klikając na Itemy nazwa pliku pokazuje się w Edit5. W Edit3 pokazuje się ścieżka do pliku.
Mam taki kodzik:

procedure TForm1.Button10Click(Sender: TObject);
var
  Bitmap : TBitmap;
  JPG : TJPEGImage;

begin
  try
    JPG := TJPEGImage.Create;
    JPG.LoadFromFile(Edit3.Text+'\'+edit5.Text);
    Bitmap := TBitmap.Create;
    Bitmap.Assign(JPG);
    Bitmap.SaveToFile('Stara_nazwa_obrazkaJPG.bmp');
    Image2.Picture.LoadFromFile('Stara_nazwa_obrazkaJPG.bmp');
   finally
    Bitmap.Free;
    JPG.Free;
  end;   end; 

I teraz gdzie jest

 Bitmap.SaveToFile('Stara_nazwa_obrazkaJPG.bmp');
    Image2.Picture.LoadFromFile('Stara_nazwa_obrazkaJPG.bmp'); 

powinna być nazwa pliku odczytanego wcześniej (JPG), ale już z rozszerzeniem BMP. Ten kod jest mi niezmiernie potrzebny ponieważ 70% programu to własnie to :) Jak mogę to poprawić aby było dobrze już?

2 pytanie:
Jak mogę poszarzyć obrazek wczytany do Image?
Czy ma ktoś jakieś procedury, które wykonują obojętnie jaki efekt na Image1? Np. właśnie te poszarzenie. Dzięki i pozdrawiam!

0

Znaczy się w czym problem? Bo napisałeś co masz, a nie napisałeś czego nie wiesz albo co nie działa...

0
Mały Janek napisał(a)

Bitmap.SaveToFile('Stara_nazwa_obrazkaJPG.bmp');
Image2.Picture.LoadFromFile('Stara_nazwa_obrazkaJPG.bmp');

Nie wiem czy Cie dobrze zrozumialem ale nie latwiej po prostu:

  Image2.Picture.Bitmap:=Bitmap;

;)

Mały Janek napisał(a)

2 pytanie:
Jak mogę poszarzyć obrazek wczytany do Image?

Nie wiem czy to pomoże ale może ustaw w Image właściwość Stretch na True i rozciagnij Image :0 :)

0

Chodzi mi o to aby odczytany jpg (w taki sposób jak go odczytuję) konwertowało na bmp.
PIT ok inaczej zapytam: jak zrobić aby obrazek był szary:) Taki jakby za mgłą. Nie chcę go poszerzać, bo jakbym tego chciał to bym użył Stretch :D A napisałem wyraźnie POSZARZYĆ :)

0

Z tym poszarzeniem to nie wiem o co Ci dokładnie chodzi:

  1. jeśli o to żeby obrazek był kolorowy a schowany za czymś w rodzaju mgły??
  2. czy chcesz z niego zrobić odcień szarości jak to jest np. w Wordzie(sprawdź sobie)
0

Odpowiedzi prosto z faq, do którego nie łaskaw Ci chyba było zajrzeć:

//Jak wykonać konwersję JPG na BMP i na odwrót
var
RysunekJPEG : TJPEGImage;
RysunekBMP : TBitmap;
begin
RysunekBMP:=TBitmap.Create;
try
RysunekBMP.LoadFromFile('NazwaPliku.BMP');
RysunekJPEG:=TJPEGImage.Create;
try
RysunekJPEG.Assign(RysunekBMP);
RysunekJPEG.SaveToFile('NazwaPliku.JPEG');
finally
RysunekJPEG.Free;
finally
RysunekBMP.Free;
end;
 
//Z JPEG na BMP:
 
var
RysunekJPEG : TJPEGImage;
RysunekBMP : TBitmap;
begin
RysunekJPEG:=TJPEGImage.Create;
RysunekJPEG.LoadFromFile('NazwaPliku.JPEG');
RysunekBMP:=TBitmap.Create;
RysunekBMP.Width:=RysunekJPEG.Width;
RysunekBMP.Height:=RysunekJPEG.Height;
RysunekBMP.Canvas.Draw(0,0,RysunekJPEG);
RysunekBMP.SaveToFile('NazwaPliku.BMP');
RysunekBMP.Free;
RysunekJPEG.Free;
end;
//Jak odwrócić kolory w Timage (tylko bmp)?
//Dodajemy na formę komponenty TImage oraz TButton.

procedure TForm1.Button1Click(Sender: TObject);
var
 R: TRect;
begin
  with Image1.Picture.Bitmap do
  begin
   R := Rect(0, 0, Width, Height);
   InvertRect(Canvas.Handle, R);
  end;
  Image1.Invalidate;
end;
//Jak zrobić obrazek niekolorowy obrazek?
Na formę wstaw Image1, w zdarzeniu np.: Button1Click poniższy kod: 
var 
WysObr, SzeObr : Integer; 
Kolor : TColor; 
R, G, B :byte; 
begin  
for SzeObr := 0 to Image1.Width do 
for WysObr := 0 to Image1.Height do 
begin 
 Kolor := Image1.Picture.Bitmap.Canvas.Pixels[SzeObr, WysObr]; 
 R := GetBValue(Kolor); 
 G := GetBValue(Kolor); 
 B := GetBValue(Kolor); 
 Image1.Picture.Bitmap.Canvas.Pixels[SzeObr, WysObr] := RGB(R, G, B); 
end;
0

Z konwertem sobie poradziłem już przed twoim postem a efekty próbowałem pisac swoje nie szukając po faqach. :) Dzięki za wszystko!!

0
Mały J. napisał(a)

a efekty próbowałem pisac swoje nie szukając po faqach. :) Dzięki za wszystko!!

W sumie to nie widzę różnicy, czy szukasz po faq czy pytasz na forum by stworzyć "swoje" efekty...:P na razie i pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1