Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Надо написать прогу для сжатия графических файлов (http://forum.oszone.net/showthread.php?t=181464)

Viruss 26-07-2010 12:45 1460757

надо написать прогу которая бы сжимала фотки...
подскажите как!!!

lxa85 26-07-2010 12:56 1460769

Viruss, бесплатным архиватором gzip, bzip и т.д. Исходники все имеются.
А вообще, мы тут не в тему.

Drongo 26-07-2010 13:25 1460796

Viruss, Выделил в отдельную тему и с языком определитесь? :) На каком писать будем?

SimSim 26-07-2010 14:18 1460841

Viruss, А обязательно писать, готовые (бесплатные) нельзя использовать?
Contenta-Converter
RIOT
JBatch_It

Drongo 26-07-2010 15:28 1460909

SimSim, Тут может быть другая тонкость. Чтобы научиться писать прогу для сжатия, её нужно написать. :)

Viruss 26-07-2010 17:31 1460965

прога должна не только сжимать фотки но и отправлять их на FTP сервер с созданием папки с именем учетной записи пользователя. а пишу на С++

Viruss 26-07-2010 18:25 1460990

как задать путь для сохранения файла???

//сохранение файла...
SavePictureDialog->Execute();
Image->Pictrue->SaveToFile(SavePictureDialog->FileName);

Drongo 26-07-2010 20:14 1461047

Viruss, В инспекторе объектов есть свойство InitialDir
Код:

SavePictureDialog1->InitialDir = "C:" ;

Viruss 26-07-2010 20:34 1461063

чет не хочет...

пошло... ток надо что бы он не выводил окно, а сохранял сам в указанное место!

Drongo, SavePictureDialog1->InitialDir = "C:" ; ... работает только на корневой каталог, а если прописать более длинный адрес она(прога) уже его не понимает.
и нет ли варианта чтобы прога сама создавала папку если ее нет???

Viruss 02-08-2010 16:28 1465287

Как создать папку, в С++, при сохранении файла?

И всеже, кто подскажет какой функцией можно сжать файл формата *.JPG в С++?

Viruss 05-08-2010 12:30 1467322

помоите!!!!
Прописываю:

SPD->InitialDir="D:\\GR2";
SPD->FileName=NameFoto->Text+".jpg";
Image1->Picture->SaveToFile(SPD->FileName);

но прога сохраняет в то место, откуда была открыта картинка...
прога работает если добавить:

SPD->Execute();

но тогда прога выкидывает окно для сохранения, а этого не надо!!!
как сделать так что бы прога сохраняла файл по указанному пути и не выводила окна???

Viruss 05-08-2010 17:05 1467543

между фотками надо переключаться, хочу использовать компонент UpDown вкладка Win32, подскажите каким оператором пользоваться...

Viruss 20-08-2010 12:53 1477917

помогите, очень надо....
Есть текст:

Код:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TJPEGImage    *ptJpg=new TJPEGImage;
  Graphics::TBitmap  *ptBmp=new Graphics::TBitmap;
  ptJpg->LoadFromFile("a.jpg");  //Загружаем файл .jpg
  Canvas->Draw(0,0,ptJpg);  //Нприсуем исходное изображение
  ptBmp->Width=3*ptJpg->Width/4;  //Уменьшаем на 3/4
  ptBmp->Height=3*ptJpg->Height/4;
  ptBmp->Canvas->StretchDraw(Rect(0,0,ptBmp->Width,ptBmp->Height),ptJpg);  //Рисуем отмасштабированное изображение на канву
  Canvas->Draw(ptJpg->Width,0,ptBmp);  //Можем нарисовать измененное изображение  //(сдвинуто на ptJpg->Width вправо)
  ptJpg->Assign(ptBmp);
  ptJpg->CompressionQuality = 75; //Степень сжатия (качество) 1..100
  ptJpg->Compress();
  ptJpg->SaveToFile("a1.jpg");  //Можно изменить степень сжатия
  delete ptJpg;
  delete ptBmp;
}

Все работает правильно, но один касяк... ptJpg->LoadFromFile("a.jpg"); - эта функция воспринимает только имя файла, а если прописать путь к файлу, она работает некорректно.
Помогите!!!!!!!!!!!!!!

Drongo 20-08-2010 13:21 1477947

Цитата:

Цитата Viruss
а если прописать путь к файлу, она работает некорректно. »

Путь прописывается через двойной слеш, например:
Код:

C:\\MyFolder\\Test\\a.jpg

Viruss 30-08-2010 11:20 1484713

Вложений: 1
Код:

void __fastcall TForm2::OtpClick(TObject *Sender)
{
FTP->UserID="xxx";
FTP->Password="xxx";
SPD->InitialDir="ftp://10.112.56.2//proga";
FTP->Host="ftp://10.112.56.2";
FTP->Connect();                 
FTP->ChangeDir("IT");
}

SPD->FileName=NameFoto->Text+".jpg";
Image1->Picture->SaveToFile(SPD->FileName);
FTP->Disconnect();


Кода проа пытыеться приконектиться к FTP... выкидывает ошибку...

Viruss 30-08-2010 13:02 1484794

подскажите.... может для работы с FTP сервером какую-нибудь библиотеку надо подключить???

Dr.Dark 31-08-2010 03:11 1485322

Вот для примера простой код который работает.
Код:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        FTP->Host="XXX.XXX.XXX.XXX";
        FTP->Username="user";
        FTP->Password="password";
        FTP->Connect();
        FTP->Put("C:\\1.jpg", "1.jpg", 0);
        ShowMessage("Done");
}

Писал в билдере. Использовал компонент TIdFTP... Вот и всё...

Viruss 05-05-2011 14:39 1670685

Есть прога, которая сжимает фото и отправляет на FTP сервер...

Код:

TJPEGImage *ptJpg=new TJPEGImage;
Graphics::TBitmap  *ptBmp=new Graphics::TBitmap;

ptJpg->LoadFromFile(OPD1->FileName); //Загружаем файл .jpg

ptBmp->Width=1.6*ptJpg->Width/4;  //Уменьшаем на 1/4
ptBmp->Height=1.6*ptJpg->Height/4;

ptBmp->Canvas->StretchDraw(Rect(0,0,ptBmp->Width,ptBmp->Height),ptJpg); //Рисуем отмасштабированное изображение на канву

ptJpg->Assign(ptBmp);

ptJpg->CompressionQuality = 50; //Степень сжатия (качество) 1..100
ptJpg->Compress();
puut=SPD->FileName+".jpg";

ptJpg->SaveToFile(SPD->FileName+".jpg");  //Можно изменить степень сжатия
delete ptJpg;

delete ptBmp;

фотография после сжатия сохраняется в ту же папку, откуда был оригинал...
а надо что бы она сохранялась в папку C:\TEMP. И после всех дествий необходимо очистить данную папку...


Время: 10:32.

Время: 10:32.
© OSzone.net 2001-