X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvMainWindow.cxx;h=a21ec0847fc6ad420d2af4dcf7f327c09bf20d6d;hb=44559d6af20e7f03fe03c121c44d2cc60a448d12;hp=d210d118bf2ae5c71ed4e215964130ed02d065f4;hpb=58d0dc73fae9ce19162706d3da1392712a9e73c5;p=clitk.git diff --git a/vv/vvMainWindow.cxx b/vv/vvMainWindow.cxx index d210d11..a21ec08 100644 --- a/vv/vvMainWindow.cxx +++ b/vv/vvMainWindow.cxx @@ -93,7 +93,7 @@ #define COLUMN_RELOAD_IMAGE 6 #define COLUMN_IMAGE_NAME 7 -#define EXTENSIONS "Images ( *.bmp *.png *.jpeg *.jpg *.tif *.mhd *.mha *.hdr *.vox *.his *.xdr *.SCAN )" +#define EXTENSIONS "Images ( *.bmp *.png *.jpeg *.jpg *.tif *.mhd *.mha *.hdr *.vox *.his *.xdr *.SCAN *.nii *.nrrd *.nhdr)" /*Data Tree values 0,Qt::UserRole full filename @@ -2257,11 +2257,17 @@ void vvMainWindow::SaveAs() } else if (dimension == 3) { OutputListeFormat.push_back(".mhd"); OutputListeFormat.push_back(".mha"); + OutputListeFormat.push_back(".nii"); + OutputListeFormat.push_back(".nrrd"); + OutputListeFormat.push_back(".nhdr"); OutputListeFormat.push_back(".hdr"); OutputListeFormat.push_back(".vox"); } else if (dimension == 4) { OutputListeFormat.push_back(".mhd"); OutputListeFormat.push_back(".mha"); + OutputListeFormat.push_back(".nii"); + OutputListeFormat.push_back(".nrrd"); + OutputListeFormat.push_back(".nhdr"); } QString Extensions = "AllFiles(*.*)"; for (int i = 0; i < OutputListeFormat.count(); i++) { @@ -2745,43 +2751,39 @@ void vvMainWindow::SaveScreenshot(QVTKWidget *widget) vtkImageData *image = w2i->GetOutput(); const char *ext = fileName.toStdString().c_str() + strlen(fileName.toStdString().c_str()) - 4; - if (!strcmp(ext, ".bmp")) { - vtkBMPWriter *bmp = vtkBMPWriter::New(); - bmp->SetInput(image); - bmp->SetFileName(fileName.toStdString().c_str()); - bmp->Write(); - bmp->Delete(); - } else if (!strcmp(ext, ".tif")) { - vtkTIFFWriter *tif = vtkTIFFWriter::New(); - tif->SetInput(image); - tif->SetFileName(fileName.toStdString().c_str()); - tif->Write(); - tif->Delete(); - } else if (!strcmp(ext, ".ppm")) { - vtkPNMWriter *pnm = vtkPNMWriter::New(); - pnm->SetInput(image); - pnm->SetFileName(fileName.toStdString().c_str()); - pnm->Write(); - pnm->Delete(); - } else if (!strcmp(ext, ".png")) { - vtkPNGWriter *png = vtkPNGWriter::New(); - png->SetInput(image); - png->SetFileName(fileName.toStdString().c_str()); - png->Write(); - png->Delete(); - } else if (!strcmp(ext, ".jpg")) { - vtkJPEGWriter *jpg = vtkJPEGWriter::New(); - jpg->SetInput(image); - jpg->SetFileName(fileName.toStdString().c_str()); - jpg->Write(); - jpg->Delete(); + + // Image + vtkImageWriter *imgwriter = NULL; + if (!strcmp(ext, ".bmp")) + imgwriter = vtkBMPWriter::New(); + else if (!strcmp(ext, ".tif")) + imgwriter = vtkTIFFWriter::New(); + else if (!strcmp(ext, ".ppm")) + imgwriter = vtkPNMWriter::New(); + else if (!strcmp(ext, ".png")) + imgwriter = vtkPNGWriter::New(); + else if (!strcmp(ext, ".jpg")) + imgwriter = vtkJPEGWriter::New(); + + // Snapshot image if not null + if(imgwriter!=NULL) { + imgwriter->SetInput(image); + imgwriter->SetFileName(fileName.toStdString().c_str()); + imgwriter->Write(); + return; #ifdef VTK_USE_FFMPEG_ENCODER } else if (!strcmp(ext, ".avi")) { vtkFFMPEGWriter *mpg = vtkFFMPEGWriter::New(); mpg->SetInput(image); mpg->SetFileName(fileName.toStdString().c_str()); mpg->SetQuality(2); - mpg->SetRate(5); + bool ok; + int fps = QInputDialog::getInt(this, tr("Number of frames per second"), + tr("FPS:"), 5, 0, 1024, 1, &ok); + if(!ok) + fps = 5; + mpg->SetRate(fps); + mpg->SetBitRateTolerance(int(ceil(12.0*1024*1024/fps))); mpg->Start(); vvImage * vvImg = mSlicerManagers[smIndex]->GetImage();