Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертировать BMP в JPG/JPEG, использую Visual Studio 6.0 
:(
    Опции темы
Testernew
  Дата 14.4.2012, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 12.2.2012
Где: Луганск

Репутация: нет
Всего: нет



Здравствуйте, как можно конвертировать bmp в jpeg? интересует самый простой способ, буду благодарен за примеры кода...

Использую  MS Visual Studio 6.0



Это сообщение отредактировал(а) Testernew - 14.4.2012, 22:03
PM   Вверх
feodorv
Дата 14.4.2012, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 11
Всего: 45



Можно посмотреть в сторону libjpeg...
Или в сторону GDI+... (пример)

Это сообщение отредактировал(а) feodorv - 14.4.2012, 23:27


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Testernew
Дата 14.4.2012, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 12.2.2012
Где: Луганск

Репутация: нет
Всего: нет



Обьясните пожалуйста как установить верно эту библиотеку... я скачал gdiplus.lib(кинул вместе с проектом и в папку system32) gdiplus.h кинул в папку include 

Выполнил также такие инструкции по установке:


добавляем следующие строчки:

#include <GdiPlus.h>
using namespace Gdiplus;
и в конце файла stdafx.cpp добавляем строку
#pragma comment(lib, "GdiPlus.lib")
Кроме того, в файле stdafx.h необходимо удалить или закомментировать строку
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 



Код

#include <stdafx.h>
#include <gdiplus.h>
using namespace Gdiplus;

void main {

}
 

Вот что пишет:

Код

d:\microsoft visual studio\vc98\include\gdiplusenums.h(28) : error C2146: syntax error : missing ';' before identifier 'GraphicsState'

Вот эта строка в gdiplusenums.h
Код

typedef UINT GraphicsState;


Это сообщение отредактировал(а) Testernew - 14.4.2012, 23:38
PM   Вверх
volatile
Дата 14.4.2012, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(Testernew @  14.4.2012,  23:36 Найти цитируемый пост)
syntax error : missing ';' before identifier 'GraphicsState'

Это значит что компилятор не знает что такое UINT

Подсказка:
А не знает он этого, потому-что не подключен windows.h
PM MAIL   Вверх
Testernew
  Дата 15.4.2012, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 12.2.2012
Где: Луганск

Репутация: нет
Всего: нет



Цитата(volatile @ 14.4.2012,  23:49)
Цитата(Testernew @  14.4.2012,  23:36 Найти цитируемый пост)
syntax error : missing ';' before identifier 'GraphicsState'

Это значит что компилятор не знает что такое UINT

Подсказка:
А не знает он этого, потому-что не подключен windows.h


Спасибо, но теперь он ругается на вот эту строку(windows.h уже подключен)
Код

typedef Status (WINAPI *NotificationHookProc)(OUT ULONG_PTR *token);


Вот что он пишет:
Код

error C2065: 'ULONG_PTR' : undeclared identifier



Вроде собралось, еще не тестил, и не знаю на сколько решение того человека верное:
Цитата

Поставил тут. DirectX 8.1 SDK (RC2) на WinXP Pro En Sp1. В DevStudio пошёл в Tools->Options->Directodies и добавил в 'Include Files' путь '...\DxSDK\Include\Prelelease', в 'Library Files' путь '...\DxSDK\Lib\Prelelease'. Пробую компилировать примеры - получаю всегда и пожизни одно и то же:
d3dapp.cpp 
D:\PROGRAM FILES\DXSDK\INCLUDE\PRERELEASE\D3DX8Math.h(259) : error C2065: 'ULONG_PTR' : undeclared identifier 
D:\PROGRAM FILES\DXSDK\INCLUDE\PRERELEASE\D3DX8Math.h(259) : error C2146: syntax error : missing ')' before identifier 'p' 
...

Нашё в форуме тему, в которой эта проблема уже обсуждалась (http://www.gamedev.ru/forum/?action=showtopic&group=0&topic=763). Там посоветовали дописать определение ULONG_PTR, например как typedef unsigned long ULONG_PTR. Однако, сиё не канает по нескольким причинам:

1. Согласитесь, кривовато и вообще антиидейно =) 
2. Причиной переустановки сдк стал ресетап винды. После первой интсалляции сдк подобных проблем не было. Странно, что они появились сейчас. 
3. Вообще, среди сдкашных хэдеров присутствует файл dvp.h. В нём есть следующий фрагмент:

#ifndef MAXULONG_PTR 
#define ULONG_PTR    DWORD 
#endif //MAXULONG_PTR

Кроме как в нём, определения ULONG_PTR больше нет нигде. Вроде как, этот dvp.h должен инклудиться во все остальные файлы, где используется ULONG_PTR. Дабы проверить, не определён ли MAXULONG_PTR, непосредсвенно перед ошибочной строкой файла d3dapp.cpp, написал "MAXULONG_PTR a;". Оказалось, что MAXULONG_PTR тоже не определён.

Тогда фигли? Майкрософты чтоли забыли включить dvp.h куда требуется, или меня опять подвела кривизна рук?





Это сообщение отредактировал(а) Testernew - 15.4.2012, 08:25
PM   Вверх
volatile
Дата 15.4.2012, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(Testernew @  15.4.2012,  08:10 Найти цитируемый пост)
Поставил тут. DirectX 8.1 SDK 

Testernew, для GDI+ DirectX не нужен.

Цитата(Testernew @  15.4.2012,  08:10 Найти цитируемый пост)
error C2065: 'ULONG_PTR' : undeclared identifier

Если вы правильно подключили хедеры (сначала <windows.h>, потом <gdi...), то проблема скорей всего в старой студии.

Цитата(Testernew @  15.4.2012,  08:10 Найти цитируемый пост)
Вроде собралось, 

Ну если собралось, и проблема была только в  ULONG_PTR, то пусть так и будет.
лучше все-же определить ULONG_PTR как-то так:
Код

#ifdef _WIN64
   typedef unsigned __int64 ULONG_PTR;
#else
   typedef unsigned long ULONG_PTR;
#endif


Нужно переходить на новую студию. С VC6 будет еще не одна проблема.

Добавлено через 12 минут и 44 секунды
Ну да. Нужно использовать свежую SDK.

Цитата

error C2065: 'ULONG_PTR' : undeclared identifier 
The GDI+ 1.0 Software Development Kit (SDK) requires the current Microsoft Platform SDK header and library files. 

http://support.microsoft.com/kb/320234
PM MAIL   Вверх
baldina
Дата 15.4.2012, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



PM MAIL   Вверх
volatile
Дата 15.4.2012, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Да, а если нужна быстрая кросс-платформенная jpg библиотека, то http://sourceforge.net/projects/libjpeg-turbo/
Там только jpg, но зато быстрая, самая быстрая из тех что я видел.
Раза 2-3 быстрее чем gdi+ например.

PM MAIL   Вверх
mrgloom
Дата 16.4.2012, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



можно подключить  libjpeg
а можно и все форматы сразу используя opencv или ImageMagick 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.