bmp в jpg и наоборот
Image1->Picture->SaveToFile(name);
Мне надо довольно много таких картинок сохранять, но довольно часто возникает EOutOfResourse. Когда я уменьшаю разрешение картинки, они возникают реже. Я вот и думаю, может в jpg сохранять, он гораздо меньше места жрет. Но работать там надо с битмэпом
Да, и еще в догонку. На самом деле проблема возникает в строчке
Image1->Picture->SaveToFile(name);
Мне надо довольно много таких картинок сохранять, но довольно часто возникает EOutOfResourse. Когда я уменьшаю разрешение картинки, они возникают реже. Я вот и думаю, может в jpg сохранять, он гораздо меньше места жрет. Но работать там надо с битмэпом
воспользуйся классом TJPEGImage
воспользуйся классом TJPEGImage
Попробовал, все равно не понимаю как туда загнать этот битмэп из имиджа
Попробовал, все равно не понимаю как туда загнать этот битмэп из имиджа
чего там сложного?
TJPEGImage *jpg_pic = new TJPEGImage();
jpg_pic->Assign(Image1->Picture->Bitmap);
jpg_pic->SaveToFile("c:\\name.jpg");
чего там сложного?
TJPEGImage *jpg_pic = new TJPEGImage();
jpg_pic->Assign(Image1->Picture->Bitmap);
jpg_pic->SaveToFile("c:\\name.jpg");
Я в общем то так и написал, но в строке
jpg_pic->Assign(Image1->Picture->Bitmap);
постоянно EAccessViolation вылетает
Я в общем то так и написал, но в строке
jpg_pic->Assign(Image1->Picture->Bitmap);
постоянно EAccessViolation вылетает
Вот кусок моей программы, работает уже несколько лет.
Функция переконвертирует имеющийся бмпшник в джпег
bool TVideoForm::BmpToJpeg(AnsiString name)
{
TJPEGImage *jpgIm = new TJPEGImage;
try
{
Image4->Picture->Bitmap->LoadFromFile(name);
jpgIm->Assign(Image4->Picture->Bitmap);
jpgIm->CompressionQuality=70;
jpgIm->SaveToFile(name+".jpg");
Image4->Picture->Bitmap->FreeImage() ;
}
catch(...)
{
delete jpgIm;
return 0;
}
delete jpgIm;
DeleteFile(name);
return 1;
}
Вот кусок моей программы, работает уже несколько лет.
Функция переконвертирует имеющийся бмпшник в джпег
bool TVideoForm::BmpToJpeg(AnsiString name)
{
TJPEGImage *jpgIm = new TJPEGImage;
try
{
Image4->Picture->Bitmap->LoadFromFile(name);
jpgIm->Assign(Image4->Picture->Bitmap);
jpgIm->CompressionQuality=70;
jpgIm->SaveToFile(name+".jpg");
Image4->Picture->Bitmap->FreeImage() ;
}
catch(...)
{
delete jpgIm;
return 0;
}
delete jpgIm;
DeleteFile(name);
return 1;
}
Так пробую точно так же, но все равно этот EAccessViolation , Единствинное различие в строке
jpgIm->CompressionQuality=70;
но так он до нее и не доходит даже
А как назад из jpg в bmp?
Image4->Picture->Bitmap->LoadFromFile(name);
JPEG я так и не
понял, какая именно ошибка имеет 60-ой номер (файл
jerror.h))?
Спасибо за помощь. А может ты в курсе еще что такое JPEG error #60? Что означает это сообщение об ошибке (из исходников модуля
JPEG я так и не
понял, какая именно ошибка имеет 60-ой номер (файл
jerror.h))?
Читай ХЕЛП по БИЛДЕРУ там есть практически все ответы, на часто задаваемые вопросы... :)