C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
JPG, JPG в Bitmap
seg_r
Отправлено: 28.06.2003, 12:02


Дежурный стрелочник

Группа: Участник
Сообщений: 74



Нужно открыть jpg файлик в Bitmap, чтобы обработать(редактировать) и потом сохранить тоже в jpg.

Спасибо.
RedMammoth
Отправлено: 28.06.2003, 21:43


Не зарегистрирован







Вот пример моей проги, которая преобразует все bmp в каталоге в jpg. Разберись, тут уж и до твоей задачи рукой подать! :-)

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Path;
if(SelectDirectory(Path, TSelectDirOpts(), 0))
{
TSearchRec sr;
const int attr = faAnyFile & ~faVolumeID & ~faDirectory;
for(int res = FindFirst(Path+"\\*.bmp", attr, sr); res == 0; res = FindNext(sr))
{
Graphics::TBitmap* bmp = new Graphics::TBitmap;
TJPEGImage* jpg = new TJPEGImage;
try
{
bmp->LoadFromFile(Path+"\\"+sr.Name);
jpg->CompressionQuality = CQ->Position; // слайдер
jpg->Assign(bmp);
jpg->Compress();
jpg->SaveToFile(ChangeFileExt(Path+"\\"+sr.Name,".jpg"));
}
__finally
{
delete bmp;
delete jpg;
}
}
FindClose(sr);
}
}
Admin
Отправлено: 30.06.2003, 13:47


Владимир

Группа: Администратор
Сообщений: 1190



Кстати, а вот конвертация из bmp в jpeg:

CODE

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

#include <vcl.h>
#pragma hdrstop

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

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 TJPEGImage* JPEG = new TJPEGImage();
 Graphics::TBitmap* Bitmap  = new Graphics::TBitmap();

  try{
    Bitmap->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp");
    JPEG->Assign(Bitmap);
    Image1->Picture->Assign((TPersistent*)JPEG);
    Image1->Picture->SaveToFile("c:\\Factory.jpg");
   }
 __finally  {  JPEG->Free();    Bitmap->Free(); }
}
//---------------------------------------------------------------------------


Отредактировано Admin — 30 Jun 2003, 13:47

Вернуться в Вопросы программирования в C++Builder