Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: SavePictureDialog  (Прочитано 9447 раз)
0 Пользователей и 1 Гость смотрят эту тему.
trosh
Гость
« : 27-06-2006 07:48 » 

Никак не получается сделать так, чтобы SavePictureDialog правельно сохранял *.bmp, *.jpg, *.jpeg. Горит!!! Не надо
Вот то, что в коде имею:
Код:
SavePictureDialog1->InitialDir;
   if (SavePictureDialog1->Execute())
   {
     FName = SavePictureDialog1->FileName;
     Child = (TMDIChild *)ChildList->Items[ActiveMDIChild->Tag];
     Child->CLDBitmap->SaveToFile(FName);
   }
Записан
Sands
Помогающий

ua
Offline Offline

« Ответ #1 : 27-06-2006 17:30 » 

На самом деле Билдер не знает форматов .jpg, *.jpeg и стандартные функции сохранения все сохраняют в *.bmp, но гдае-то я видел возможность подключения форматов .jpg, *.jpeg в блдер. Если хочеш могу глянуть.
Записан
trosh
Гость
« Ответ #2 : 27-06-2006 21:44 » 

Вот нашел код, но он не полный.
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Graphics::TBitmap *bm1 = new Graphics::TBitmap;
  TPicture *Picture = new TPicture();
  Picture->RegisterFileFormat(__classid(TJPEGImage), "jpg",                   
  Picture->/*?Здесь чего-то вписать надо?*/"jpg",__classid(TJPEGImage));
  TJPEGImage *jp = new TJPEGImage();

  try
  {
    Picture->LoadFromFile(szName);
    bm1->Width = Picture->Graphic->Width;
    bm1->Height = Picture->Graphic->Height;
    bm1->Canvas->Draw(0,0,Picture->Graphic);
    jp->Assign(bm1);
    jp->SaveToFile(szName2);
  }
  __finally
  {
    delete jp;
    delete bm1;
    delete Picture;
  }
}
Записан
trosh
Гость
« Ответ #3 : 27-06-2006 22:23 » 

Ладно, в приведенном коде меня в общем-то могут интересовать только две строчки:

Код:
jp->Assign(bm1);
jp->SaveToFile(szName2);
Блин, как все прото  Улыбаюсь
Вот теперь как надо все сохраняет, наверное  Улыбаюсь
Код:
SavePictureDialog1->InitialDir;
   if (SavePictureDialog1->Execute())
   {
     FName = SavePictureDialog1->FileName;
     Child = (TMDIChild *)ChildList->Items[ActiveMDIChild->Tag];
      if (SavePictureDialog1->FilterIndex == 1)
       {
        Child->CLDBitmap->SaveToFile(FName);
       }
       if (SavePictureDialog1->FilterIndex == 2)
       {
       TJPEGImage *jtmp = new TJPEGImage;
        jtmp->Assign(Child->CLDBitmap);
        jtmp->SaveToFile(FName);
        delete(jtmp);
       }

   }
Вот только я разницу между JPG и JPEG не улавливаю  Да-да
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines