evg
Чтобы создать уменьшенную или увеличенную копию JPG-картинки в C++Builder необходимо немного поизвращаться, т.к. TJPEGImage не позволяет менять размер JPG-изображения. Для работы нужно подключить библеотеку #include <jpeg.hpp>

void ResizeJPEG(AnsiString FileName, AnsiString resizedFileName,float Scale,int Quality = 75)
{
        //создаем экземпляры bmp и jpg изображений
        Graphics::TBitmap * bmp = new Graphics::TBitmap();
        TJPEGImage * jpg = new TJPEGImage();
        //открыаем исходное JPG-изображение
        jpg->LoadFromFile(FileName);
        bmp->Width = jpg->Width * Scale;
        bmp->Height = jpg->Height * Scale; 
        //отрисовываем в bmp изображение из Jpg
        bmp->Canvas->StretchDraw(TRect(0,0,bmp->Width,bmp->Height), jpg);
        //ассоциируем наш jpg с получившимся bmp
        jpg->Assign(bmp);
        jpg->CompressionQuality = Quality; 
        jpg->PixelFormat = jf24Bit;
        //сжимаем заново
        jpg->Compress();
        //сохраняем полученное изображение
        jpg->SaveToFile(resizedFileName);
        delete jpg;
        delete bmp;
}
	

Коментарии