Zmienna w miejscu "plik.png"

Zmienna w miejscu "plik.png"
amddell
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Jak zrobić żeby zamiast plik.png była zmienna

Kopiuj
file="plik.png";
Kopiuj
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
CLSID   encoderClsid;
Status  stat;
Image*   image = new Image(L"plik.png");
GetEncoderClsid(L"image/jpeg", &encoderClsid);
stat = image->Save(L"plik.jpg", &encoderClsid, NULL);
delete image;
GdiplusShutdown(gdiplusToken);
 
NI
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 535
0

może podasz nazwę biblioteki?

amddell
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Tu masz cały kod

Kopiuj
 
#include <windows.h>
#include <gdiplus.h>

using namespace Gdiplus;

int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
	UINT  num = 0;
	UINT  size = 0;

	ImageCodecInfo* pImageCodecInfo = NULL;

	GetImageEncodersSize(&num, &size);
	if(size == 0)
		return -1;

	pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
	if(pImageCodecInfo == NULL)
		return -1; 

	GetImageEncoders(num, size, pImageCodecInfo);

	for(UINT j = 0; j < num; ++j)
	{
		if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
		{
			*pClsid = pImageCodecInfo[j].Clsid;
			free(pImageCodecInfo);
			return j;
		}
	}

	free(pImageCodecInfo);
	return -1;
}

int main()
{
	GdiplusStartupInput gdiplusStartupInput;
	ULONG_PTR gdiplusToken;
	GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
	CLSID   encoderClsid;
	Status  stat;
	Image*   image = new Image(L"plik.png");
	GetEncoderClsid(L"image/jpeg", &encoderClsid);
	stat = image->Save(L"plik.jpg", &encoderClsid, NULL);
	delete image;
	GdiplusShutdown(gdiplusToken);
}
S1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
2

Zapisz po prostu do stringa.
std::wstring file_name = L"plik.png"

amddell
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Zrobiłem tak jak napisałeś i wywala mi błąd kompilacji w linijce

Kopiuj
Image*   image = new Image(file);

Błąd kompilacji: http://wklej.to/gaVsj

S1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Byś chociaż udał, że spojrzałeś w doku...
https://msdn.microsoft.com/en-us/library/windows/desktop/ms535411%28v=vs.85%29.aspx
Argument jest typu WCHAR*

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
const wchar_t *plik = L"plik.png";

a najlepiej operuj na wstring:

Kopiuj
wstring plik = L"plik.png";
Image*   image = new Image(plik.c_str());
amddell
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Dziękuję za pomoc wszystkim :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.