2016-07-29 1 views
0

Qt GUI를 사용하여 선택한 그림을 내 프로그램 디렉토리에 저장하는 C++ 함수를 코딩하려고합니다.QPixmap을 C++ 및 Qt가있는 폴더에 그림으로 저장하는 방법은 무엇입니까?

지금까지 QPixmap 개체에서 사용하고있는 "저장"기능은 아무 것도 저장하지 못하고 이유를 알 수 없습니다.

qImage = new QPixmap(path); 
QPixmap qImage2 = qImage->scaled(this->width(),this->height(), Qt::KeepAspectRatio, Qt::SmoothTransformation); 

qImage2.toImage(); 

qImage2.save(QDir::currentPath()); 
qDebug()<<QDir::currentPath(); 

사람이 좀 도와 줄래 : 여기

코드인가? :)

+0

'currentPath'에 쓸 수있는 권한이 프로그램에 없어도 될까요? Windows에 있습니까? 그렇다면 "C :/User /.../ Downloads"에 저장해보십시오. 나는 당신의 코드에 어떤 문제도 보이지 않는다. 비록 화면 상에 가속 렌더링을 위해 특별히 설계된'QPixmap'을 사용하는 것이 이상하다. 가능하면'QImage'를 고수해야합니다. –

+0

이것은 실제로는 파일 이름이 누락되었지만 문제가되지는 않았지만 권한을 쓰는 것에 대해 생각하지 않았고 딸꾹질이었을 수 있기 때문에 감사합니다! – Elyss

+0

Dang, 나는주의하지 않았다 :) –

답변

1
  • QDir::currentPath()는 현재 작업 디렉토리를 반환합니다. 분명히 이라는 파일 이름 자체는 지정되어 있지 않습니다. 간단하게 예를 들어, 필요한 파일 이름을 추가합니다 QDir::currentPath() + "/123.png"

  • QPixmap::toImage()QImageQPixmap 변환 반환하는 CONST 방법이다. 문자 그대로 코드에서 아무 것도 유용하지 않으며 제거하거나 QImage을 대신 사용하십시오.

  • QDir::currentPath()이 아니고 현재 실행 가능한 디렉토리 인을 반환합니다. 실행 디렉터리가 필요한 경우 QCoreApplication::applicationDirPath()을 대신 사용하십시오.
  • 또한, 바이올렛 기린으로 지적 되었 듯이 쓰기 권한 문제가있을 수 있습니다.
+0

대단히 고마워! 그것은 실제로 그것을 잘 고쳤다! – Elyss

관련 문제