src/ExtraOperations/ImageOperations.c

Ir para a documentação deste ficheiro.
00001 #include <gtk/gtk.h>
00002 #include "vapiOptions.h"
00003 #include "vapiOperationList.h"
00004 #include "vapiOperation.h"
00005 #include "vapiCameraSettings.h"
00006 #include "vapiCameraAcquisition.h"
00007 #include "vapiImagesAux.h"
00008 #ifndef VAPI_WITHOUT_INTERFACE
00009 #include "vapiGtkImages.h"
00010 #endif
00011 #include <highgui.h>
00012 
00013 #define NumberOfImageOperations 2
00014 /*
00015  * Protótipos das operações.
00016  */
00017 void vapiOriginal (vImages * Images, vOptions * options,
00018                    vMacroResult * PreviousResult);
00019 
00020 void vapiImageSave (vImages * Images, vOptions * options,
00021                     vMacroResult * PreviousResult);
00022 
00023 
00024 void
00025 vapiImageOperations ()
00026 {
00027         vEffect *Operation[NumberOfImageOperations];
00028 
00029         Operation[0] =
00030                 vapiOperationInit ("Repor Imagem", "Imagem", &vapiOriginal);
00031         vapiOperationSettingsSetHasOriginalOption (Operation[0]);
00032         vapiOperationSettingsSetOperationBriefDescription (Operation[0],
00033                                                            "Possibilita a reposição da imagem original ou nova captura");
00034 
00035 
00036         Operation[1] = vapiOperationInit ("Guardar Imagem", "Imagem", &vapiImageSave);
00037         vapiOperationSettingsSetOperationBriefDescription (Operation[1],
00038                                                            "Guarda uma imagem para ficheiro");
00039         vapiOperationSettingsSetOperationLongDescription (Operation[1],
00040                                                           "Guarda a imagem actual ou a original para ficheiro. o ficheiro pode ser jpg, png, giff ou tif.");
00041         
00042         vapiOperationSettingsSetChar (Operation[1], "Nome do Ficheiro", "Nome do ficheiro, preenchido como ficheiro.tipo");
00043         
00044         vapiOperationSettingsSetChoose(Operation[1], "Qual a Imagem a Guardar?", "Escolher a imagem a guardar para ficheiro; Original ou Actual", 2, 0, "Actual", "Original");
00045         vapiOperationListAddOperation (Operation, NumberOfImageOperations);
00046 }
00047 
00052 void
00053 vapiOriginal (vImages * Images, vOptions * options,
00054               vMacroResult * PreviousResult)
00055 {
00056         vImages * GlobalImages = vapiImagesGlobalRetrieve();
00057         vCameraSettings *CameraSettings;
00058         if (((vEffectOptions *) options->CustomOptions)->original)
00059         {
00060                 vImagesFreeActual (Images);
00061                 vapiOriginal2Actual (Images);
00062         }
00063         else
00064         {
00065                 v_debug ("repor imagem antes do free total");
00066                 vImagesFreeImages (Images);
00067                 v_debug ("repor imagem depois do free total");
00068                 CameraSettings = vapiCameraSettingsRetrieveGlobal ();
00069                 vapiGetSnapshot (Images, CameraSettings);
00070                 vapiOriginal2Actual(Images);
00071                 vImagesFreeImages(GlobalImages);
00072                 GlobalImages->Original=vapiImagesCopy(Images->Original);
00073                 vapiOriginal2Actual(GlobalImages);
00074                 vapiOriginal2Actual (Images);
00075         }
00076 }
00077 
00078 void
00079 vapiImageSave (vImages * Images, vOptions * options,
00080                vMacroResult * PreviousResult)
00081 {
00082         switch (options->choices[0])
00083         {
00084         case 1:
00085         {
00086                 /* Imagem Original. */
00087                 cvSaveImage (options->chars[0].ch, Images->Original);
00088                 break;
00089         }
00090 
00091         default:
00092         case 0:
00093         {
00094                 /* Imagem Actual. */
00095                 cvSaveImage (options->chars[0].ch, Images->Actual);
00096                 break;
00097         }
00098         }
00099 }

Gerado em Tue Jul 24 10:34:58 2007 para Vapi por  doxygen 1.5.1