|
void __fastcall ConvertToPng(const AnsiString FileName, Graphics::TBitmap *Bitmap)
{
Graphicex::TPNGGraphic *Png = new Graphicex::TPNGGraphic;
if (Bitmap)
{
Png->Assign(Bitmap);
Png->SaveToFile(FileName);
}
delete Png;
}
//---------------------------------------------------------------------------
void __fastcall ConvertToJpeg(const AnsiString FileName, int Quality, Graphics::TBitmap *Bitmap)
{
Jpeg::TJPEGImage *Jpg = new Jpeg::TJPEGImage;
if (Bitmap)
{
Jpg->CompressionQuality = Quality;
Jpg->Assign(Bitmap);
Jpg->SaveToFile(FileName);
}
delete Jpg;
}
//---------------------------------------------------------------------------
void __fastcall ConvertToPng(const AnsiString FileName, Jpeg::TJPEGImage *Jpg)
{
Jpg->DIBNeeded();
Graphics::TBitmap *Bitmap = new Graphics::TBitmap;
Bitmap->Assign(Jpg);
ConvertToPng(FileName, Bitmap);
delete Bitmap;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ConvertToJpeg(const AnsiString FileName, Graphicex::TPNGGraphic *Png)
{
Graphics::TBitmap *Bitmap = new Graphics::TBitmap;
Bitmap->Assign(Png);
ConvertToJpeg(FileName, Bitmap);
delete Bitmap;
}
//---------------------------------------------------------------------------
이상 .. 대충 보시면 알겠지만...
Bitmap을 PNG로 바꾸면 되는데 그게 정말 PNG인지 아니면 파일 이름만 바뀌는건지 잘 모르겠습니다.
왜냐하면 PNG로 바뀐것을 다시 PNG->LoadFromFile()하면 읽을수 없거나 아니면 잘못된 PNG파일 형식이라고
하더군요...참..ㅠㅜ ..나..
Assign으로 바꾸면 안되는건지요.. 분명 위의 코드로 바꾼 PNG를 다시 PNG->LoadFrom...하면
왜 안되는지.. 답변 부탁드려요...
|