Zamiana BMP na JPG + kompresja regulowana % suwakiem.

0

http://komputery.katalogi.pl/%5Bc%2B%2B%5D_Builder_i_jpeg-t55806.html

Witam, chciałbym zrobić podobny program jak ten kolega,a mianowicie mam 2 obiekty Image, klikając na przycisk wybieram plik bmp, przeskakuje mi to na 1 obiekt Imagę. Potem suwakiem zwiększam kompresję pliku i jest na bieŻąco (Boże, widzisz takie błędy i nie grzmisz) pokazywa w drugim obiekcie Image. Potem zostawiam np na 50% i zapisuje sobie już jako plik jpg.
user image

Czy jest możliwe zrobienie czegoś takiego w borland c++ 6 ?

dziekuję za każdą pomoc

0

NA razie co zrobiłem to:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <jpeg.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
  Image1->Picture->LoadFromFile(OpenDialog1->FileName);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{
    int jakosc = 100; // dowolna wartość od 1 (najgorsza jakość) do 100 (najlepsza jakość)
AnsiString nazwa_pliku = "plik.bmp"; // nazwa pliku bmp

Graphics::TBitmap *bmp = new Graphics::TBitmap();
bmp->LoadFromFile(nazwa_pliku);
TJPEGImage *jpg = new TJPEGImage();
try
{
jpg->CompressionQuality = jakosc;
jpg->Assign(bmp);
jpg->Compress();
bmp->Assign(jpg);
}
catch (...) { }
delete jpg;
  jakosc = ScrollBar1->Position;
}

//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{

}
//---------------------------------------------------------------------------

jakieś wskazówki ?

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