Repository: XiuSdk/ZPhotoEngine Branch: master Commit: f87d6aa02b9b Files: 239 Total size: 1.1 MB Directory structure: gitextract__5gedzwg/ ├── .gitattributes ├── .gitignore ├── README.md ├── ZPHOTOENGINE/ │ ├── Linux/ │ │ └── ZPhotoEngine.h │ ├── PC/ │ │ ├── DEMO/ │ │ │ └── Release/ │ │ │ └── ZPhotoEngine.lib │ │ ├── PC-ProjectCodes/ │ │ │ ├── TestDemo/ │ │ │ │ ├── AnisotropicFilterForm.Designer.cs │ │ │ │ ├── AnisotropicFilterForm.cs │ │ │ │ ├── AnisotropicFilterForm.resx │ │ │ │ ├── BlackWhiteForm.Designer.cs │ │ │ │ ├── BlackWhiteForm.cs │ │ │ │ ├── BlackWhiteForm.resx │ │ │ │ ├── BrightContrastForm.Designer.cs │ │ │ │ ├── BrightContrastForm.cs │ │ │ │ ├── BrightContrastForm.resx │ │ │ │ ├── ChannelMixForm.Designer.cs │ │ │ │ ├── ChannelMixForm.cs │ │ │ │ ├── ChannelMixForm.resx │ │ │ │ ├── ColorbalanceForm.Designer.cs │ │ │ │ ├── ColorbalanceForm.cs │ │ │ │ ├── ColorbalanceForm.resx │ │ │ │ ├── DifussionForm.Designer.cs │ │ │ │ ├── DifussionForm.cs │ │ │ │ ├── DifussionForm.resx │ │ │ │ ├── DisplacementFrom.Designer.cs │ │ │ │ ├── DisplacementFrom.cs │ │ │ │ ├── DisplacementFrom.resx │ │ │ │ ├── ExposureForm.Designer.cs │ │ │ │ ├── ExposureForm.cs │ │ │ │ ├── ExposureForm.resx │ │ │ │ ├── FilterForm.Designer.cs │ │ │ │ ├── FilterForm.cs │ │ │ │ ├── FilterForm.resx │ │ │ │ ├── Form1.Designer.cs │ │ │ │ ├── Form1.cs │ │ │ │ ├── Form1.resx │ │ │ │ ├── GammaForm.Designer.cs │ │ │ │ ├── GammaForm.cs │ │ │ │ ├── GammaForm.resx │ │ │ │ ├── GaussBlurForm.Designer.cs │ │ │ │ ├── GaussBlurForm.cs │ │ │ │ ├── GaussBlurForm.resx │ │ │ │ ├── HSLForm.Designer.cs │ │ │ │ ├── HSLForm.cs │ │ │ │ ├── HSLForm.resx │ │ │ │ ├── HighlightShadowForm.Designer.cs │ │ │ │ ├── HighlightShadowForm.cs │ │ │ │ ├── HighlightShadowForm.resx │ │ │ │ ├── HighpassForm.Designer.cs │ │ │ │ ├── HighpassForm.cs │ │ │ │ ├── HighpassForm.resx │ │ │ │ ├── HistagramForm.Designer.cs │ │ │ │ ├── HistagramForm.cs │ │ │ │ ├── HistagramForm.resx │ │ │ │ ├── ImageProcessId.cs │ │ │ │ ├── LevelForm.Designer.cs │ │ │ │ ├── LevelForm.cs │ │ │ │ ├── LevelForm.resx │ │ │ │ ├── MaxForm.Designer.cs │ │ │ │ ├── MaxForm.cs │ │ │ │ ├── MaxForm.resx │ │ │ │ ├── MeanBlurForm.Designer.cs │ │ │ │ ├── MeanBlurForm.cs │ │ │ │ ├── MeanBlurForm.resx │ │ │ │ ├── MedianForm.Designer.cs │ │ │ │ ├── MedianForm.cs │ │ │ │ ├── MedianForm.resx │ │ │ │ ├── MessageForm.Designer.cs │ │ │ │ ├── MessageForm.cs │ │ │ │ ├── MessageForm.resx │ │ │ │ ├── MinForm.Designer.cs │ │ │ │ ├── MinForm.cs │ │ │ │ ├── MinForm.resx │ │ │ │ ├── MosciaForm.Designer.cs │ │ │ │ ├── MosciaForm.cs │ │ │ │ ├── MosciaForm.resx │ │ │ │ ├── MotionBlurForm.Designer.cs │ │ │ │ ├── MotionBlurForm.cs │ │ │ │ ├── MotionBlurForm.resx │ │ │ │ ├── NSaturationForm.Designer.cs │ │ │ │ ├── NSaturationForm.cs │ │ │ │ ├── NSaturationForm.resx │ │ │ │ ├── PosterizeForm.Designer.cs │ │ │ │ ├── PosterizeForm.cs │ │ │ │ ├── PosterizeForm.resx │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ │ ├── Resources.Designer.cs │ │ │ │ │ ├── Resources.resx │ │ │ │ │ ├── Settings.Designer.cs │ │ │ │ │ └── Settings.settings │ │ │ │ ├── RadialBlurForm.Designer.cs │ │ │ │ ├── RadialBlurForm.cs │ │ │ │ ├── RadialBlurForm.resx │ │ │ │ ├── ReliefForm.Designer.cs │ │ │ │ ├── ReliefForm.cs │ │ │ │ ├── ReliefForm.resx │ │ │ │ ├── RotateForm.Designer.cs │ │ │ │ ├── RotateForm.cs │ │ │ │ ├── RotateForm.resx │ │ │ │ ├── SmartBlurForm.Designer.cs │ │ │ │ ├── SmartBlurForm.cs │ │ │ │ ├── SmartBlurForm.resx │ │ │ │ ├── SurfaceBlurForm.Designer.cs │ │ │ │ ├── SurfaceBlurForm.cs │ │ │ │ ├── SurfaceBlurForm.resx │ │ │ │ ├── TempreatureForm.Designer.cs │ │ │ │ ├── TempreatureForm.cs │ │ │ │ ├── TempreatureForm.resx │ │ │ │ ├── TestDemo.csproj │ │ │ │ ├── TestDemo.csproj.user │ │ │ │ ├── ThresholdForm.Designer.cs │ │ │ │ ├── ThresholdForm.cs │ │ │ │ ├── ThresholdForm.resx │ │ │ │ ├── USMForm.Designer.cs │ │ │ │ ├── USMForm.cs │ │ │ │ ├── USMForm.resx │ │ │ │ ├── ZPhotoEngineDll.cs │ │ │ │ ├── ZoomBlurForm.Designer.cs │ │ │ │ ├── ZoomBlurForm.cs │ │ │ │ ├── ZoomBlurForm.resx │ │ │ │ ├── ZoomForm.Designer.cs │ │ │ │ ├── ZoomForm.cs │ │ │ │ ├── ZoomForm.resx │ │ │ │ ├── app.config │ │ │ │ ├── bin/ │ │ │ │ │ └── Release/ │ │ │ │ │ ├── TestDemo.exe.config │ │ │ │ │ ├── TestDemo.pdb │ │ │ │ │ ├── TestDemo.vshost.exe.config │ │ │ │ │ ├── TestDemo.vshost.exe.manifest │ │ │ │ │ ├── ZPhotoEngine.exp │ │ │ │ │ └── ZPhotoEngine.lib │ │ │ │ └── obj/ │ │ │ │ └── x86/ │ │ │ │ ├── Debug/ │ │ │ │ │ ├── TestDemo.AnisotropicFilterForm.resources │ │ │ │ │ ├── TestDemo.BlackWhiteForm.resources │ │ │ │ │ ├── TestDemo.BrightContrastForm.resources │ │ │ │ │ ├── TestDemo.ChannelMixForm.resources │ │ │ │ │ ├── TestDemo.ColorbalanceForm.resources │ │ │ │ │ ├── TestDemo.DifussionForm.resources │ │ │ │ │ ├── TestDemo.ExposureForm.resources │ │ │ │ │ ├── TestDemo.FilterForm.resources │ │ │ │ │ ├── TestDemo.Form1.resources │ │ │ │ │ ├── TestDemo.GammaForm.resources │ │ │ │ │ ├── TestDemo.GaussBlurForm.resources │ │ │ │ │ ├── TestDemo.HSLForm.resources │ │ │ │ │ ├── TestDemo.HighlightShadowForm.resources │ │ │ │ │ ├── TestDemo.HighpassForm.resources │ │ │ │ │ ├── TestDemo.HistagramForm.resources │ │ │ │ │ ├── TestDemo.LevelForm.resources │ │ │ │ │ ├── TestDemo.MaxForm.resources │ │ │ │ │ ├── TestDemo.MeanBlurForm.resources │ │ │ │ │ ├── TestDemo.MedianForm.resources │ │ │ │ │ ├── TestDemo.MessageForm.resources │ │ │ │ │ ├── TestDemo.MinForm.resources │ │ │ │ │ ├── TestDemo.MosciaForm.resources │ │ │ │ │ ├── TestDemo.MotionBlurForm.resources │ │ │ │ │ ├── TestDemo.NSaturationForm.resources │ │ │ │ │ ├── TestDemo.PosterizeForm.resources │ │ │ │ │ ├── TestDemo.Properties.Resources.resources │ │ │ │ │ ├── TestDemo.RadialBlurForm.resources │ │ │ │ │ ├── TestDemo.ReliefForm.resources │ │ │ │ │ ├── TestDemo.RotateForm.resources │ │ │ │ │ ├── TestDemo.SmartBlurForm.resources │ │ │ │ │ ├── TestDemo.SurfaceBlurForm.resources │ │ │ │ │ ├── TestDemo.TempreatureForm.resources │ │ │ │ │ ├── TestDemo.ThresholdForm.resources │ │ │ │ │ ├── TestDemo.USMForm.resources │ │ │ │ │ ├── TestDemo.ZoomBlurForm.resources │ │ │ │ │ ├── TestDemo.ZoomForm.resources │ │ │ │ │ ├── TestDemo.csproj.FileListAbsolute.txt │ │ │ │ │ ├── TestDemo.csproj.GenerateResource.Cache │ │ │ │ │ └── TestDemo.csprojResolveAssemblyReference.cache │ │ │ │ └── Release/ │ │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ ├── TestDemo.AnisotropicFilterForm.resources │ │ │ │ ├── TestDemo.BlackWhiteForm.resources │ │ │ │ ├── TestDemo.BrightContrastForm.resources │ │ │ │ ├── TestDemo.ChannelMixForm.resources │ │ │ │ ├── TestDemo.ColorbalanceForm.resources │ │ │ │ ├── TestDemo.DifussionForm.resources │ │ │ │ ├── TestDemo.DisplacementFrom.resources │ │ │ │ ├── TestDemo.ExposureForm.resources │ │ │ │ ├── TestDemo.FilterForm.resources │ │ │ │ ├── TestDemo.Form1.resources │ │ │ │ ├── TestDemo.GammaForm.resources │ │ │ │ ├── TestDemo.GaussBlurForm.resources │ │ │ │ ├── TestDemo.HSLForm.resources │ │ │ │ ├── TestDemo.HighlightShadowForm.resources │ │ │ │ ├── TestDemo.HighpassForm.resources │ │ │ │ ├── TestDemo.HistagramForm.resources │ │ │ │ ├── TestDemo.LevelForm.resources │ │ │ │ ├── TestDemo.MaxForm.resources │ │ │ │ ├── TestDemo.MeanBlurForm.resources │ │ │ │ ├── TestDemo.MedianForm.resources │ │ │ │ ├── TestDemo.MessageForm.resources │ │ │ │ ├── TestDemo.MinForm.resources │ │ │ │ ├── TestDemo.MosciaForm.resources │ │ │ │ ├── TestDemo.MotionBlurForm.resources │ │ │ │ ├── TestDemo.NSaturationForm.resources │ │ │ │ ├── TestDemo.PosterizeForm.resources │ │ │ │ ├── TestDemo.Properties.Resources.resources │ │ │ │ ├── TestDemo.RadialBlurForm.resources │ │ │ │ ├── TestDemo.ReliefForm.resources │ │ │ │ ├── TestDemo.RotateForm.resources │ │ │ │ ├── TestDemo.SmartBlurForm.resources │ │ │ │ ├── TestDemo.SurfaceBlurForm.resources │ │ │ │ ├── TestDemo.TempreatureForm.resources │ │ │ │ ├── TestDemo.ThresholdForm.resources │ │ │ │ ├── TestDemo.USMForm.resources │ │ │ │ ├── TestDemo.ZoomBlurForm.resources │ │ │ │ ├── TestDemo.ZoomForm.resources │ │ │ │ ├── TestDemo.csproj.FileListAbsolute.txt │ │ │ │ ├── TestDemo.csproj.GenerateResource.Cache │ │ │ │ ├── TestDemo.csprojResolveAssemblyReference.cache │ │ │ │ └── TestDemo.pdb │ │ │ ├── TestDemo.sln │ │ │ └── TestDemo.suo │ │ ├── ZPhotoEngine.h │ │ └── library/ │ │ ├── MixedPlatform/ │ │ │ └── ZPhotoEngine.lib │ │ ├── ReadMe.txt │ │ ├── ZPhotoEngine.h │ │ └── x86/ │ │ └── ZPhotoEngine.lib │ ├── ZPhotoEngine_IO/ │ │ ├── PC_LIB/ │ │ │ ├── ZPhotoEngineIO.lib │ │ │ └── inc/ │ │ │ ├── SFBITMAP.h │ │ │ ├── SFImageReadWrite.h │ │ │ └── f_error.h │ │ └── ZPhotoIODEMO/ │ │ ├── Debug/ │ │ │ └── ImageReadDemo.lib │ │ ├── ZPhotoIODEMO/ │ │ │ ├── SFBITMAP.h │ │ │ ├── SFImageReadWrite.h │ │ │ ├── ZPhotoIODEMO.vcxproj │ │ │ ├── ZPhotoIODEMO.vcxproj.filters │ │ │ ├── ZPhotoIODEMO.vcxproj.user │ │ │ ├── f_error.h │ │ │ ├── main.cpp │ │ │ ├── stdafx.cpp │ │ │ ├── stdafx.h │ │ │ └── targetver.h │ │ ├── ZPhotoIODEMO.sln │ │ └── ZPhotoIODEMO.suo │ └── android/ │ ├── ReadMe.txt │ └── ZPHOTO/ │ └── PhotoEngine.java ├── ZPhotoEngine.h └── ZPhotoEngineSDK开发文档.doc ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ # Auto detect text files and perform LF normalization * text=auto # Custom for Visual Studio *.cs diff=csharp # Standard to msysgit *.doc diff=astextplain *.DOC diff=astextplain *.docx diff=astextplain *.DOCX diff=astextplain *.dot diff=astextplain *.DOT diff=astextplain *.pdf diff=astextplain *.PDF diff=astextplain *.rtf diff=astextplain *.RTF diff=astextplain ================================================ FILE: .gitignore ================================================ # Windows image file caches Thumbs.db ehthumbs.db # Folder config file Desktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msm *.msp # Windows shortcuts *.lnk # ========================= # Operating System Files # ========================= # OSX # ========================= .DS_Store .AppleDouble .LSOverride # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk ================================================ FILE: README.md ================================================ # ZPhotoEngine ZPhotoEngine is a special image processing library for free. It has a lot of features like photoshop. ================================================ FILE: ZPHOTOENGINE/Linux/ZPhotoEngine.h ================================================ /***************************************************************************** Copyright: Trent File name: ZPhotoEngine.h Description: ZPHOTO ENGINE LIBRARY FOR IMAGE PROCESSING LIKE PS Author: Trent Version: V3.6 Date: 2017-08-17 Mail: dongtingyueh@163.com *****************************************************************************/ #ifndef __T_PHOTOENGINE__ #define __T_PHOTOENGINE__ ////////////////////////////////////////////////////////////////////////////// //ͼģʽ const int BLEND_MODE_DARKEN = 1; const int BLEND_MODE_MULTIPLY = 2; const int BLEND_MODE_COLORBURN = 3; const int BLEND_MODE_LINEARBURN = 4; const int BLEND_MODE_DARKNESS = 5; const int BLEND_MODE_LIGHTEN = 6; const int BLEND_MODE_SCREEN = 7; const int BLEND_MODE_COLORDODGE = 8; const int BLEND_MODE_COLORLINEARDODGE = 9; const int BLEND_MODE_LIGHTCOLOR = 10; const int BLEND_MODE_OVERLAY = 11; const int BLEND_MODE_SOFTLIGHT = 12; const int BLEND_MODE_HARDLIGHT = 13; const int BLEND_MODE_VIVIDLIGHT = 14; const int BLEND_MODE_LINEARLIGHT = 15; const int BLEND_MODE_PINLIGHT = 16; const int BLEND_MODE_SOLIDCOLORMIXING = 17; const int BLEND_MODE_DIFFERENCE = 18; const int BLEND_MODE_EXCLUSION = 19; const int BLEND_MODE_SUBTRACTION = 20; const int BLEND_MODE_DIVIDE = 21; /////////////////////////////////////////////////////////////////////////////// #ifdef _MSC_VER #ifdef __cplusplus #define EXPORT extern "C" _declspec(dllexport) #else #define EXPORT __declspec(dllexport) #endif // /************************************************* Function: ZPHOTO_Saturation Description: Ͷȵ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride saturation-ͶֵΧ[0,512] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); /************************************************* Function: ZPHOTO_Posterize Description: ɫ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride clusterNum-ɫΧ[2,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); /************************************************* Function: ZPHOTO_OverExposure Description: ع. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride);//ع /************************************************* Function: ZPHOTO_Lightness Description: ȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride lightness-ֵΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness);//ȵ /************************************************* Function: ZPHOTO_Invert Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride);// /************************************************* Function: ZPHOTO_HueAndSaturation Description: ɫ౥Ͷȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride hue-ɫֵΧ[-180,180] saturation-ͶֵΧΪ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation);//ɫ౥Ͷȵ /************************************************* Function: ZPHOTO_HistagramEqualize Description: ɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride);//ɫ /************************************************* Function: ZPHOTO_Desaturate Description: ȥɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ȥɫ̶ȣ[0-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio);//ȥɫ /************************************************* Function: ZPHOTO_Curve Description: ߵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 knotsPos-XY飺ʼ+м+ĩβ㣬һspline Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); /************************************************* Function: ZPHOTO_CurveLevel Description: ɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 inputLeftLimit-СֵΧ[0,255] inputMiddle-мֵΧ[0,9.99] inputRightLimit-ֵΧ[0,255] outputLeftLimit-СֵΧ[0,255] outputRightLimit-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit);//ɫ׵ /************************************************* Function: ZPHOTO_NLinearBrightContrastAdjust Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-255,255] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_LinearBrightContrast Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-100,100] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_Blackwhite Description: ڰ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride kRed-ɫ,Χ[-200,300] kGreen-ɫ,Χ[-200,300] kBlue-ɫ,Χ[-200,300] kYellow-ɫ,Χ[-200,300] kCyan-ɫ,Χ[-200,300] kMagenta-,Χ[-200,300] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta);//ڰ /************************************************* Function: ZPHOTO_AutoContrast Description: ԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoContrastAdjustWithParameters Description: ƵԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoColorGradation Description: Զɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride);//Զɫ /************************************************* Function: ZPHOTO_AutoColorGradationAdjustWithParameters Description: ƵԶɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//Զɫ /************************************************* Function: ZPHOTO_Threshold Description: ֵ(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold);//ֵ /************************************************* Function: ZPHOTO_ChannelMixProcess Description: ͨ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride channel-Red-0,Green-1,Blue-2,Gray-3 kr-RedͨΧ[-200,200] kg-GreenͨΧ[-200,200] kb-BlueͨΧ[-200,200] N-ڱΧ[-200,200] singleColor-Ƿɫɫ-trueɫ-false constAdjust-Ƿִгڣ-true,-false Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); /************************************************* Function: ZPHOTO_FastestGaussFilter Description: ٸ˹ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius);//˹˲ /************************************************* Function: ZPHOTO_HighPass Description: ߷ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius);//߷ /************************************************* Function: ZPHOTO_USM Description: USM Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹뾶ΧΪ[0,1000] amount-񻯳̶ȣΧΪ[0,500] threshold-ֵΧΪ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); /************************************************* Function: ZPHOTO_FindEdges Description: ұԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride);//ұԵ ///////////////////////////////////////////////////////////////////////////////////////////////////// //ͼϹ /************************************************* Function: ZPHOTO_ModeDarken Description: 䰵ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarken(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeMultiply Description: Ƭģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorBurn Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearBurn Description: Խģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDarkness Description: ɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeLighten Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLighten(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeScreen Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeScreen(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorDodge Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorLinearDodge Description: ɫԼģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLightColor Description: dzɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeOverlay Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSoftLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeHardLight Description: ǿģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeVividLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearLight Description: Թģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModePinLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModePinLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSolidColorMixing Description: ʵɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeDifference Description: ֵģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDifference(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeExclusion Description: ųģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSubtraction Description: ȥģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDivide Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDivide(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDesaturate Description: ȥɫ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDesaturate(int red,int green,int blue); /************************************************* Function: ZPHOTO_ModeColorInvert Description: Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); /************************************************* Function: ZPHOTO_ImageBlendEffect Description: ͼ Input: baseData-ͼͼBufferʽΪ32λBGRA width-ͼ height-ͼ߶ stride-ͼStride mixData-ͼͼBufferСͼͼһ blendMode-ͼģʽ Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode); ///////////////////////////////////////////////////////////////////////////////////////////////////// //չ /************************************************* Function: ZPHOTO_ColorTemperature Description: ɫµ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɫǿȣΧ[-50,50]intensity < 0ɫintensity = 0,ԭͼintensity > 0ůɫ Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Shadow Description: Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ӰǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Shadow(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Highlight Description: ߹ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--߹ǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Highlight(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_HighlightShadowPrecise Description: ߹Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride highlight--߹ǿֵȡֵΧΪ[-200,100] shadow-ӰǿֵȡֵΧΪ[-200,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); /************************************************* Function: ZPHOTO_Exposure Description: ع Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--عǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_CalcWH Description: ͼ任֮Ŀ߼任HýӿZPHOTO_ImageTransformation Input: inputImgSize--ͼϢ angle--תǶֵȡֵΧΪ[-360-360] scale--ű任ֵȡֵ0 transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 outputImgSize--ͼϢ H--任飬Ϊ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); /************************************************* Function: ZPHOTO_ImageTransformation Description: ͼ任 Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ srcImgSize--ԭʼͼϢ dstData--ͼBufferСɽӿZPHOTO_CalcWH dstImgSize--ĿͼϢ H--任飬Ϊ6 Interpolation_method--ֵѡinterpolation_bilinear,interpolation_nearest Transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); /************************************************* Function: ZPHOTO_FastMeanFilter Description: ֵģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius--ֵ˲뾶ȡֵΧΪ[0,width / 2] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); /************************************************* Function: ZPHOTO_SobelFilter Description: SobelԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); //For Android Development /************************************************* Function: ZPHOTO_RGBA2BGRA Description: RGBAʽתBGRAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_BGRA2RGBA Description: BGRAʽתRGBAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Fragment Description: Ƭ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_MotionBlur Description: ˶ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-˶ģǶֵȡֵΧΪ[0,360] distance-˶ģֵȡֵΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); /************************************************* Function: ZPHOTO_SurfaceBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ģֵֵȡֵΧΪ[0,255] radius-ģ뾶ֵȡֵΧΪ[0,10] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); /************************************************* Function: ZPHOTO_RadialBlur Description: תģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ѡģX cenY-תģY amount-תģ̶ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); /************************************************* Function: ZPHOTO_ZoomBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ģX cenY-ģY sampleRadius-ģ뾶ΧΪ[0-255] amount-ģ̶,ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); /************************************************* Function: ZPHOTO_Relief Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-ǶȣΧΪ[0-360] amount-̶,ΧΪ[0-500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); /************************************************* Function: ZPHOTO_Mean Description: ƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Mosaic Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-Mosaic뾶,ΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mosaic(unsigned char* srcData, int width, int height, int stride, int size); /************************************************* Function: ZPHOTO_ColorBalance Description: ɫƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cyan-ɫΧΪ[-100,100] magenta-죬ΧΪ[-100,100] yellow-ɫΧΪ[-100,100] channel-ͨѡRGB-0,R-1,G-2,B-3 preserveLuminosity-true:ȣfalse: Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); /************************************************* Function: ZPHOTO_Diffusion Description: ɢ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɢ̶ȣΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); /************************************************* Function: ZPHOTO_LSNBlur Description: LSNBlur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-LSNBlur뾶ΧΪ[0,200] delta-[0,500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); /************************************************* Function: ZPHOTO_MedianFilter Description: ֵ˲(мɫ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride,int radius); /************************************************* Function: ZPHOTO_MaxFilter Description: ֵ˲(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_MinFilter Description: Сֵ˲(Сֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_GlowingEdges Description: Ե˾ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride edgeSize-ԵֵȡֵΧΪ[1,14] edgeLightness-ԵֵȡֵΧΪ[0,20] edgeSmoothness-ƽȣȡֵΧΪ[1,15] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); /************************************************* Function: ZPHOTO_ImageWarpWave Description: Wave Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-γ̶ȣΧ[0, 100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_RGBToYCbCr Description: RGBתYCbCr Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Y-Y Cb-Cb Cr-Cr Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); /************************************************* Function: ZPHOTO_YCbCrToRGB Description: YCbCrתRGB Input: Y-Y Cb-Cb Cr-Cr Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); /************************************************* Function: ZPHOTO_RGBToLab Description: RGBתLAB Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); /************************************************* Function: ZPHOTO_LabToRGB Description: LABתRGB Input: L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); /************************************************* Function: ZPHOTO_GammaCorrect Description: Gamma Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-GammaΧ[1,50] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); /******************************************************************************* * Function Name : Natural Saturation * Description : ȻͶ * Input srcData : image data * Input width : image width * Input height : image height * Input stride : image stride * Input saturation : saturation value to adjust from -100 to 100 * Output : None * Return : 0-success, others failed *******************************************************************************/ EXPORT int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); EXPORT int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); /****************************************************Update*************************************************** ****************************************************Date:2018-06-21******************************************* Content: Smart blur filter Anisotropic Filter *************************************************************************************************************/ /************************************************* Function: ZPHOTO_SmartBlurFilter Description: Smart Blur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-ģ뾶ֵȡֵΧΪ[0,100] threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); /************************************************* Function: ZPHOTO_AnisotropicFilter Description: Anisotropic Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride iter-ȡֵΧΪ[0,100] k-ɢϵΧ[0,] lambda-[0,0.35],default 0.25 offset-[0,10],default 3 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); /************************************************* Function: ZPHOTO_DisplacementFilter Description: Displacement Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride maskData-ûͼʽΪ32λBGRAʽ mWidth-ûͼ mHeight-ûͼ߶ mStride-ûͼStride hRatio-ˮƽΧ[-100,100] vRatio-ֱΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); /************************************************* Function: ZPHOTO_NoiseEffect Description: Noise effect Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ͼĻϱΧ[0,100] sigma-Χ[0,] phase-ȣΧ[0,] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #else #ifdef __cplusplus extern "C" { #endif // int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness); int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation); int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride); int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio); int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit); int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold); int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold); int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta); int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold); int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius); int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); //V1.2 int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); int ZPHOTO_Mosaic(unsigned char *srcData, int width, int height, int stride, int size); int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); ///ͼϹ int ZPHOTO_ModeDarken(int basePixel,int mixPixel); int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeLighten(int basePixel,int mixPixel); int ZPHOTO_ModeScreen(int basePixel,int mixPixel); int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); int ZPHOTO_ModePinLight(int basePixel,int mixPixel); int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeDifference(int basePixel,int mixPixel); int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); int ZPHOTO_ModeDivide(int basePixel,int mixPixel); int ZPHOTO_ModeDesaturate(int red,int green,int blue); int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode);//ͼ //չ int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius); int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); //For Android Development int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #ifdef __cplusplus } #endif #endif #endif ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/AnisotropicFilterForm.Designer.cs ================================================ namespace TestDemo { partial class AnisotropicFilterForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 13; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(6, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 83); this.skinHScrollBar2.Maximum = 59; this.skinHScrollBar2.Minimum = 2; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Value = 10; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 62); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(23, 12); this.label2.TabIndex = 5; this.label2.Text = "K:"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "10"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 36); this.skinHScrollBar1.Maximum = 19; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 7; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 1; this.label1.Text = "Iter:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 12); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "7"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // AnisotropicFilterForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.Name = "AnisotropicFilterForm"; this.Text = "AnisotropicFilterForm"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/AnisotropicFilterForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class AnisotropicFilterForm : CCWin.Skin_Mac { public AnisotropicFilterForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.AnisotropicFilter(curBitmap, iter, k); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int iter = 7; private int k = 10; public int getIter { get { return iter; } } public int getK { get { return k; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { k = skinHScrollBar2.Value; iter = skinHScrollBar1.Value; textBox1.Text = iter.ToString(); textBox2.Text = k.ToString(); pictureBox1.Image = (Image)zPhoto.AnisotropicFilter(curBitmap, iter, k); } } private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { k = skinHScrollBar2.Value; iter = skinHScrollBar1.Value; textBox1.Text = iter.ToString(); textBox2.Text = k.ToString(); pictureBox1.Image = (Image)zPhoto.AnisotropicFilter(curBitmap, iter, k); } } private void skinButton1_Click(object sender, EventArgs e) { k = skinHScrollBar2.Value; iter = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/AnisotropicFilterForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/BlackWhiteForm.Designer.cs ================================================ namespace TestDemo { partial class BlackWhiteForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.label15 = new System.Windows.Forms.Label(); this.comboBox1 = new System.Windows.Forms.ComboBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.button8 = new System.Windows.Forms.Button(); this.label13 = new System.Windows.Forms.Label(); this.textBox6 = new System.Windows.Forms.TextBox(); this.hScrollBar6 = new System.Windows.Forms.HScrollBar(); this.label14 = new System.Windows.Forms.Label(); this.button7 = new System.Windows.Forms.Button(); this.label11 = new System.Windows.Forms.Label(); this.textBox5 = new System.Windows.Forms.TextBox(); this.hScrollBar5 = new System.Windows.Forms.HScrollBar(); this.label12 = new System.Windows.Forms.Label(); this.button6 = new System.Windows.Forms.Button(); this.label9 = new System.Windows.Forms.Label(); this.textBox4 = new System.Windows.Forms.TextBox(); this.hScrollBar4 = new System.Windows.Forms.HScrollBar(); this.label10 = new System.Windows.Forms.Label(); this.button5 = new System.Windows.Forms.Button(); this.label7 = new System.Windows.Forms.Label(); this.textBox3 = new System.Windows.Forms.TextBox(); this.hScrollBar3 = new System.Windows.Forms.HScrollBar(); this.label8 = new System.Windows.Forms.Label(); this.button4 = new System.Windows.Forms.Button(); this.label5 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.hScrollBar2 = new System.Windows.Forms.HScrollBar(); this.label6 = new System.Windows.Forms.Label(); this.button3 = new System.Windows.Forms.Button(); this.label3 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.hScrollBar1 = new System.Windows.Forms.HScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // label15 // this.label15.AutoSize = true; this.label15.Location = new System.Drawing.Point(6, 47); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(53, 12); this.label15.TabIndex = 72; this.label15.Text = "预设(E:)"; // // comboBox1 // this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { "默认值", "蓝色滤镜", "较暗", "绿色滤镜", "高对比度蓝色滤镜", "高对比度红色滤镜", "红外线", "较亮", "最黑", "最白", "中灰密度", "红色滤镜", "黄色滤镜"}); this.comboBox1.Location = new System.Drawing.Point(65, 44); this.comboBox1.Name = "comboBox1"; this.comboBox1.Size = new System.Drawing.Size(177, 20); this.comboBox1.TabIndex = 71; this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged_1); // // groupBox1 // this.groupBox1.Controls.Add(this.button8); this.groupBox1.Controls.Add(this.label13); this.groupBox1.Controls.Add(this.textBox6); this.groupBox1.Controls.Add(this.hScrollBar6); this.groupBox1.Controls.Add(this.label14); this.groupBox1.Controls.Add(this.button7); this.groupBox1.Controls.Add(this.label11); this.groupBox1.Controls.Add(this.textBox5); this.groupBox1.Controls.Add(this.hScrollBar5); this.groupBox1.Controls.Add(this.label12); this.groupBox1.Controls.Add(this.button6); this.groupBox1.Controls.Add(this.label9); this.groupBox1.Controls.Add(this.textBox4); this.groupBox1.Controls.Add(this.hScrollBar4); this.groupBox1.Controls.Add(this.label10); this.groupBox1.Controls.Add(this.button5); this.groupBox1.Controls.Add(this.label7); this.groupBox1.Controls.Add(this.textBox3); this.groupBox1.Controls.Add(this.hScrollBar3); this.groupBox1.Controls.Add(this.label8); this.groupBox1.Controls.Add(this.button4); this.groupBox1.Controls.Add(this.label5); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.hScrollBar2); this.groupBox1.Controls.Add(this.label6); this.groupBox1.Controls.Add(this.button3); this.groupBox1.Controls.Add(this.label3); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Controls.Add(this.hScrollBar1); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Location = new System.Drawing.Point(7, 78); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(256, 362); this.groupBox1.TabIndex = 70; this.groupBox1.TabStop = false; this.groupBox1.Text = "黑白"; // // button8 // this.button8.BackColor = System.Drawing.Color.Magenta; this.button8.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.button8.Location = new System.Drawing.Point(147, 295); this.button8.Name = "button8"; this.button8.Size = new System.Drawing.Size(20, 20); this.button8.TabIndex = 67; this.button8.UseVisualStyleBackColor = false; // // label13 // this.label13.AutoSize = true; this.label13.Location = new System.Drawing.Point(239, 297); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(11, 12); this.label13.TabIndex = 66; this.label13.Text = "%"; this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // textBox6 // this.textBox6.Location = new System.Drawing.Point(173, 294); this.textBox6.Name = "textBox6"; this.textBox6.Size = new System.Drawing.Size(60, 21); this.textBox6.TabIndex = 65; this.textBox6.Text = "80"; this.textBox6.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar6 // this.hScrollBar6.Location = new System.Drawing.Point(8, 323); this.hScrollBar6.Maximum = 309; this.hScrollBar6.Minimum = -200; this.hScrollBar6.Name = "hScrollBar6"; this.hScrollBar6.Size = new System.Drawing.Size(227, 17); this.hScrollBar6.TabIndex = 64; this.hScrollBar6.Value = 80; this.hScrollBar6.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar6_Scroll_1); // // label14 // this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(6, 297); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(59, 12); this.label14.TabIndex = 63; this.label14.Text = "洋红(M):"; this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // button7 // this.button7.BackColor = System.Drawing.Color.Blue; this.button7.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.button7.Location = new System.Drawing.Point(147, 241); this.button7.Name = "button7"; this.button7.Size = new System.Drawing.Size(20, 20); this.button7.TabIndex = 62; this.button7.UseVisualStyleBackColor = false; // // label11 // this.label11.AutoSize = true; this.label11.Location = new System.Drawing.Point(239, 243); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(11, 12); this.label11.TabIndex = 61; this.label11.Text = "%"; this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // textBox5 // this.textBox5.Location = new System.Drawing.Point(173, 240); this.textBox5.Name = "textBox5"; this.textBox5.Size = new System.Drawing.Size(60, 21); this.textBox5.TabIndex = 60; this.textBox5.Text = "20"; this.textBox5.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar5 // this.hScrollBar5.Location = new System.Drawing.Point(8, 269); this.hScrollBar5.Maximum = 309; this.hScrollBar5.Minimum = -200; this.hScrollBar5.Name = "hScrollBar5"; this.hScrollBar5.Size = new System.Drawing.Size(227, 17); this.hScrollBar5.TabIndex = 59; this.hScrollBar5.Value = 20; this.hScrollBar5.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar5_Scroll_1); // // label12 // this.label12.AutoSize = true; this.label12.Location = new System.Drawing.Point(6, 243); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(59, 12); this.label12.TabIndex = 58; this.label12.Text = "蓝色(B):"; this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // button6 // this.button6.BackColor = System.Drawing.Color.Cyan; this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.button6.Location = new System.Drawing.Point(147, 187); this.button6.Name = "button6"; this.button6.Size = new System.Drawing.Size(20, 20); this.button6.TabIndex = 57; this.button6.UseVisualStyleBackColor = false; // // label9 // this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(239, 189); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(11, 12); this.label9.TabIndex = 56; this.label9.Text = "%"; this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // textBox4 // this.textBox4.Location = new System.Drawing.Point(173, 186); this.textBox4.Name = "textBox4"; this.textBox4.Size = new System.Drawing.Size(60, 21); this.textBox4.TabIndex = 55; this.textBox4.Text = "60"; this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar4 // this.hScrollBar4.Location = new System.Drawing.Point(8, 215); this.hScrollBar4.Maximum = 309; this.hScrollBar4.Minimum = -200; this.hScrollBar4.Name = "hScrollBar4"; this.hScrollBar4.Size = new System.Drawing.Size(227, 17); this.hScrollBar4.TabIndex = 54; this.hScrollBar4.Value = 60; this.hScrollBar4.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar4_Scroll_1); // // label10 // this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(6, 189); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(59, 12); this.label10.TabIndex = 53; this.label10.Text = "青色(C):"; this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // button5 // this.button5.BackColor = System.Drawing.Color.Green; this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.button5.Location = new System.Drawing.Point(147, 134); this.button5.Name = "button5"; this.button5.Size = new System.Drawing.Size(20, 20); this.button5.TabIndex = 52; this.button5.UseVisualStyleBackColor = false; // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(239, 136); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(11, 12); this.label7.TabIndex = 51; this.label7.Text = "%"; this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // textBox3 // this.textBox3.Location = new System.Drawing.Point(173, 133); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(60, 21); this.textBox3.TabIndex = 50; this.textBox3.Text = "40"; this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar3 // this.hScrollBar3.Location = new System.Drawing.Point(8, 162); this.hScrollBar3.Maximum = 309; this.hScrollBar3.Minimum = -200; this.hScrollBar3.Name = "hScrollBar3"; this.hScrollBar3.Size = new System.Drawing.Size(227, 17); this.hScrollBar3.TabIndex = 49; this.hScrollBar3.Value = 40; this.hScrollBar3.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar3_Scroll_1); // // label8 // this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(6, 136); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(59, 12); this.label8.TabIndex = 48; this.label8.Text = "绿色(G):"; this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // button4 // this.button4.BackColor = System.Drawing.Color.Yellow; this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.button4.Location = new System.Drawing.Point(147, 81); this.button4.Name = "button4"; this.button4.Size = new System.Drawing.Size(20, 20); this.button4.TabIndex = 47; this.button4.UseVisualStyleBackColor = false; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(239, 83); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(11, 12); this.label5.TabIndex = 46; this.label5.Text = "%"; this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(173, 80); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(60, 21); this.textBox2.TabIndex = 45; this.textBox2.Text = "60"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar2 // this.hScrollBar2.Location = new System.Drawing.Point(8, 109); this.hScrollBar2.Maximum = 309; this.hScrollBar2.Minimum = -200; this.hScrollBar2.Name = "hScrollBar2"; this.hScrollBar2.Size = new System.Drawing.Size(227, 17); this.hScrollBar2.TabIndex = 44; this.hScrollBar2.Value = 60; this.hScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar2_Scroll_1); // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(6, 83); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(59, 12); this.label6.TabIndex = 43; this.label6.Text = "黄色(Y):"; this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // button3 // this.button3.BackColor = System.Drawing.Color.Red; this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.button3.Location = new System.Drawing.Point(147, 28); this.button3.Name = "button3"; this.button3.Size = new System.Drawing.Size(20, 20); this.button3.TabIndex = 42; this.button3.UseVisualStyleBackColor = false; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(239, 30); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(11, 12); this.label3.TabIndex = 41; this.label3.Text = "%"; this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(173, 27); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(60, 21); this.textBox1.TabIndex = 40; this.textBox1.Text = "40"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar1 // this.hScrollBar1.Location = new System.Drawing.Point(8, 56); this.hScrollBar1.Maximum = 309; this.hScrollBar1.Minimum = -200; this.hScrollBar1.Name = "hScrollBar1"; this.hScrollBar1.Size = new System.Drawing.Size(227, 17); this.hScrollBar1.TabIndex = 39; this.hScrollBar1.Value = 40; this.hScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar1_Scroll_1); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(6, 30); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(59, 12); this.label2.TabIndex = 38; this.label2.Text = "红色(R):"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // pictureBox1 // this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(269, 43); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(367, 367); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 73; this.pictureBox1.TabStop = false; // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(409, 417); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 74; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // BlackWhiteForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(653, 459); this.Controls.Add(this.skinButton1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.label15); this.Controls.Add(this.comboBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(653, 459); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(653, 459); this.Name = "BlackWhiteForm"; this.Text = "黑白"; this.TitleCenter = false; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label label15; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button button8; private System.Windows.Forms.Label label13; private System.Windows.Forms.TextBox textBox6; private System.Windows.Forms.HScrollBar hScrollBar6; private System.Windows.Forms.Label label14; private System.Windows.Forms.Button button7; private System.Windows.Forms.Label label11; private System.Windows.Forms.TextBox textBox5; private System.Windows.Forms.HScrollBar hScrollBar5; private System.Windows.Forms.Label label12; private System.Windows.Forms.Button button6; private System.Windows.Forms.Label label9; private System.Windows.Forms.TextBox textBox4; private System.Windows.Forms.HScrollBar hScrollBar4; private System.Windows.Forms.Label label10; private System.Windows.Forms.Button button5; private System.Windows.Forms.Label label7; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.HScrollBar hScrollBar3; private System.Windows.Forms.Label label8; private System.Windows.Forms.Button button4; private System.Windows.Forms.Label label5; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.HScrollBar hScrollBar2; private System.Windows.Forms.Label label6; private System.Windows.Forms.Button button3; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.HScrollBar hScrollBar1; private System.Windows.Forms.Label label2; private System.Windows.Forms.PictureBox pictureBox1; private CCWin.SkinControl.SkinButton skinButton1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/BlackWhiteForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class BlackWhiteForm : CCWin.Skin_Mac { /// /// /// /// public BlackWhiteForm(string path) { InitializeComponent(); this.DoubleBuffered = true; comboBox1.SelectedIndex = 0; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 200 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 200 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; BlackWhite(0); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int kRed = 0, kYellow = 0, kGreen = 0, kCyan = 0, kBlue = 0, kMagenta = 0; private void skinButton1_Click(object sender, EventArgs e) { if (pictureBox1.Image != null) { this.DialogResult = DialogResult.OK; this.Close(); } } private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e) { if (pictureBox1.Image != null) { BlackWhite(comboBox1.SelectedIndex); } } public int getKRed { get { return kRed; } } public int getKGreen { get { return kGreen; } } public int getKBlue { get { return kBlue; } } public int getKYellow { get { return kYellow; } } public int getKCyan { get { return kCyan; } } public int getKMagenta { get { return kMagenta; } } private void BlackWhite(int mode) { switch (mode) { case 0://default kRed = 40; kYellow = 60; kGreen = 40; kCyan = 60; kBlue = 20; kMagenta = 80; break; case 1://蓝色滤镜 kRed = 0; kYellow = 0; kGreen = 0; kCyan = 110; kBlue = 110; kMagenta = 110; break; case 2://较暗 kRed = 30; kYellow = 50; kGreen = 30; kCyan = 50; kBlue = 10; kMagenta = 70; break; case 3://绿色滤镜 kRed = 50; kYellow = 120; kGreen = 90; kCyan = 50; kBlue = 0; kMagenta = 0; break; case 4://高对比度蓝色滤镜 kRed = -50; kYellow = -50; kGreen = -50; kCyan = 150; kBlue = 150; kMagenta = 150; break; case 5://高对比度红色滤镜 kRed = 120; kYellow = 120; kGreen = -10; kCyan = -50; kBlue = -50; kMagenta = 120; break; case 6://红外线 kRed = -40; kYellow = 235; kGreen = 144; kCyan = -68; kBlue = -3; kMagenta = -107; break; case 7://较亮 kRed = 50; kYellow = 70; kGreen = 50; kCyan = 70; kBlue = 30; kMagenta = 90; break; case 8://最黑 kRed = 0; kYellow = 0; kGreen = 0; kCyan = 0; kBlue = 0; kMagenta = 0; break; case 9://最白 kRed = 100; kYellow = 100; kGreen = 100; kCyan = 100; kBlue = 100; kMagenta = 100; break; case 10://中灰密度 kRed = 128; kYellow = 128; kGreen = 100; kCyan = 100; kBlue = 128; kMagenta = 100; break; case 11://红色滤镜 kRed = 120; kYellow = 110; kGreen = -10; kCyan = -50; kBlue = 0; kMagenta = 120; break; case 12://黄色滤镜 kRed = 120; kYellow = 110; kGreen = 40; kCyan = -30; kBlue = 0; kMagenta = 70; break; default: kRed = 40; kYellow = 60; kGreen = 40; kCyan = 60; kBlue = 20; kMagenta = 80; break; } hScrollBar1.Value = kRed; hScrollBar2.Value = kYellow; hScrollBar3.Value = kGreen; hScrollBar4.Value = kCyan; hScrollBar5.Value = kBlue; hScrollBar6.Value = kMagenta; textBox1.Text = kRed.ToString(); textBox2.Text = kYellow.ToString(); textBox3.Text = kGreen.ToString(); textBox4.Text = kCyan.ToString(); textBox5.Text = kBlue.ToString(); textBox6.Text = kMagenta.ToString(); if (pictureBox1.Image != null) { pictureBox1.Image = (Image)zPhoto.BlackwhiteProcess(curBitmap, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); } } //red private void hScrollBar1_Scroll_1(object sender, ScrollEventArgs e) { kRed = hScrollBar1.Value; kYellow = hScrollBar2.Value; kGreen = hScrollBar3.Value; kCyan = hScrollBar4.Value; kBlue = hScrollBar5.Value; kMagenta = hScrollBar6.Value; textBox1.Text = kRed.ToString(); if (pictureBox1.Image != null) { pictureBox1.Image = (Image)zPhoto.BlackwhiteProcess(curBitmap, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); } } //yellow private void hScrollBar2_Scroll_1(object sender, ScrollEventArgs e) { kRed = hScrollBar1.Value; kYellow = hScrollBar2.Value; kGreen = hScrollBar3.Value; kCyan = hScrollBar4.Value; kBlue = hScrollBar5.Value; kMagenta = hScrollBar6.Value; textBox2.Text = kYellow.ToString(); if (pictureBox1.Image != null) { pictureBox1.Image = (Image)zPhoto.BlackwhiteProcess(curBitmap, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); } } /////////////// //green private void hScrollBar3_Scroll_1(object sender, ScrollEventArgs e) { kRed = hScrollBar1.Value; kYellow = hScrollBar2.Value; kGreen = hScrollBar3.Value; kCyan = hScrollBar4.Value; kBlue = hScrollBar5.Value; kMagenta = hScrollBar6.Value; textBox3.Text = kGreen.ToString(); if (pictureBox1.Image != null) { pictureBox1.Image = (Image)zPhoto.BlackwhiteProcess(curBitmap, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); } } //cyan private void hScrollBar4_Scroll_1(object sender, ScrollEventArgs e) { kRed = hScrollBar1.Value; kYellow = hScrollBar2.Value; kGreen = hScrollBar3.Value; kCyan = hScrollBar4.Value; kBlue = hScrollBar5.Value; kMagenta = hScrollBar6.Value; textBox4.Text = kCyan.ToString(); if (pictureBox1.Image != null) { pictureBox1.Image = (Image)zPhoto.BlackwhiteProcess(curBitmap, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); } } //blue private void hScrollBar5_Scroll_1(object sender, ScrollEventArgs e) { kRed = hScrollBar1.Value; kYellow = hScrollBar2.Value; kGreen = hScrollBar3.Value; kCyan = hScrollBar4.Value; kBlue = hScrollBar5.Value; kMagenta = hScrollBar6.Value; textBox5.Text = kBlue.ToString(); if (pictureBox1.Image != null) { pictureBox1.Image = (Image)zPhoto.BlackwhiteProcess(curBitmap, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); } } //magenta private void hScrollBar6_Scroll_1(object sender, ScrollEventArgs e) { kRed = hScrollBar1.Value; kYellow = hScrollBar2.Value; kGreen = hScrollBar3.Value; kCyan = hScrollBar4.Value; kBlue = hScrollBar5.Value; kMagenta = hScrollBar6.Value; textBox6.Text = kMagenta.ToString(); if (pictureBox1.Image != null) { pictureBox1.Image = (Image)zPhoto.BlackwhiteProcess(curBitmap, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/BlackWhiteForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/BrightContrastForm.Designer.cs ================================================ namespace TestDemo { partial class BrightContrastForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.hScrollBar1 = new System.Windows.Forms.HScrollBar(); this.hScrollBar2 = new System.Windows.Forms.HScrollBar(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 3; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.checkBox1); this.groupBox1.Controls.Add(this.hScrollBar1); this.groupBox1.Controls.Add(this.hScrollBar2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 2; this.groupBox1.TabStop = false; // // checkBox1 // this.checkBox1.AutoSize = true; this.checkBox1.Location = new System.Drawing.Point(17, 124); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(48, 16); this.checkBox1.TabIndex = 8; this.checkBox1.Text = "旧版"; this.checkBox1.UseVisualStyleBackColor = true; this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); // // hScrollBar1 // this.hScrollBar1.Location = new System.Drawing.Point(11, 40); this.hScrollBar1.Maximum = 109; this.hScrollBar1.Minimum = -100; this.hScrollBar1.Name = "hScrollBar1"; this.hScrollBar1.Size = new System.Drawing.Size(164, 17); this.hScrollBar1.TabIndex = 4; this.hScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar1_Scroll); // // hScrollBar2 // this.hScrollBar2.Location = new System.Drawing.Point(11, 93); this.hScrollBar2.Maximum = 109; this.hScrollBar2.Minimum = -100; this.hScrollBar2.Name = "hScrollBar2"; this.hScrollBar2.Size = new System.Drawing.Size(164, 17); this.hScrollBar2.TabIndex = 5; this.hScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar2_Scroll); // // textBox2 // this.textBox2.Location = new System.Drawing.Point(74, 65); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(65, 21); this.textBox2.TabIndex = 7; this.textBox2.Text = "0"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(74, 14); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(65, 21); this.textBox1.TabIndex = 6; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(15, 17); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 4; this.label1.Text = "亮度:"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(15, 68); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(53, 12); this.label2.TabIndex = 5; this.label2.Text = "对比度:"; // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(100, 121); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // BrightContrastForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "BrightContrastForm"; this.Text = "图像亮度对比度"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.HScrollBar hScrollBar1; private System.Windows.Forms.HScrollBar hScrollBar2; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/BrightContrastForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class BrightContrastForm : CCWin.Skin_Mac { public BrightContrastForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; } } private ZPhotoEngineDll zPhoto = null; private int brightness = 0; private int contrast = 0; private bool versionNew = true; private Bitmap curBitmap = null; public int getBright { get { return brightness; } } public int getContrast { get { return contrast; } } public bool getVersion { get { return versionNew; } } private void skinButton1_Click(object sender, EventArgs e) { if (curBitmap != null) { //brightness = hScrollBar1.Value; //contrast = hScrollBar2.Value; this.DialogResult = DialogResult.OK; this.Close(); } } //bright private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { textBox1.Text = hScrollBar1.Value.ToString(); brightness = hScrollBar1.Value; contrast = hScrollBar2.Value; if (versionNew) { pictureBox1.Image = zPhoto.NLinearBrightContrastAdjust(curBitmap, brightness,contrast, 128); } else { pictureBox1.Image = zPhoto.LinearBrightContrastAdjust(curBitmap, brightness, contrast, 128); } } } //contrast private void hScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { textBox2.Text = hScrollBar2.Value.ToString(); brightness = hScrollBar1.Value; contrast = hScrollBar2.Value; if (versionNew) { pictureBox1.Image = zPhoto.NLinearBrightContrastAdjust(curBitmap, brightness, contrast, 128); } else { pictureBox1.Image = zPhoto.LinearBrightContrastAdjust(curBitmap, brightness, contrast, 128); } } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { versionNew = false; //hScrollBar1.Maximum = 159; //hScrollBar1.Minimum = -150; //hScrollBar2.Maximum = 109; //hScrollBar2.Minimum = -50; hScrollBar1.Value = 0; hScrollBar2.Value = 0; textBox1.Text = hScrollBar1.Value.ToString(); textBox2.Text = hScrollBar2.Value.ToString(); brightness = 0; contrast = 0; } else { versionNew = true; //hScrollBar1.Maximum = 109; //hScrollBar1.Minimum = -100; //hScrollBar2.Maximum = 109; //hScrollBar2.Minimum = -100; hScrollBar1.Value = 0; hScrollBar2.Value = 0; textBox1.Text = hScrollBar1.Value.ToString(); textBox2.Text = hScrollBar2.Value.ToString(); brightness = 0; contrast = 0; } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/BrightContrastForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ChannelMixForm.Designer.cs ================================================ namespace TestDemo { partial class ChannelMixForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.groupBox1 = new System.Windows.Forms.GroupBox(); this.label8 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.textBox3 = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.hScrollBar3 = new System.Windows.Forms.HScrollBar(); this.hScrollBar2 = new System.Windows.Forms.HScrollBar(); this.hScrollBar1 = new System.Windows.Forms.HScrollBar(); this.label6 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.hScrollBar4 = new System.Windows.Forms.HScrollBar(); this.label7 = new System.Windows.Forms.Label(); this.textBox4 = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.comboBox1 = new System.Windows.Forms.ComboBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.label9 = new System.Windows.Forms.Label(); this.button1 = new System.Windows.Forms.Button(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // groupBox1 // this.groupBox1.Controls.Add(this.label8); this.groupBox1.Controls.Add(this.label4); this.groupBox1.Controls.Add(this.textBox3); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Controls.Add(this.hScrollBar3); this.groupBox1.Controls.Add(this.hScrollBar2); this.groupBox1.Controls.Add(this.hScrollBar1); this.groupBox1.Controls.Add(this.label6); this.groupBox1.Controls.Add(this.label5); this.groupBox1.Controls.Add(this.label3); this.groupBox1.Location = new System.Drawing.Point(18, 70); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(275, 168); this.groupBox1.TabIndex = 0; this.groupBox1.TabStop = false; this.groupBox1.Text = "源通道"; // // label8 // this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(249, 113); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(11, 12); this.label8.TabIndex = 71; this.label8.Text = "%"; this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(249, 69); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(11, 12); this.label4.TabIndex = 70; this.label4.Text = "%"; this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // textBox3 // this.textBox3.Location = new System.Drawing.Point(195, 110); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(46, 21); this.textBox3.TabIndex = 63; this.textBox3.Text = "0"; this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(249, 23); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(11, 12); this.label1.TabIndex = 69; this.label1.Text = "%"; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(195, 66); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(46, 21); this.textBox2.TabIndex = 62; this.textBox2.Text = "0"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(195, 20); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(46, 21); this.textBox1.TabIndex = 61; this.textBox1.Text = "100"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar3 // this.hScrollBar3.Location = new System.Drawing.Point(59, 134); this.hScrollBar3.Maximum = 209; this.hScrollBar3.Minimum = -200; this.hScrollBar3.Name = "hScrollBar3"; this.hScrollBar3.Size = new System.Drawing.Size(201, 17); this.hScrollBar3.TabIndex = 60; this.hScrollBar3.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar3_Scroll); // // hScrollBar2 // this.hScrollBar2.Location = new System.Drawing.Point(59, 90); this.hScrollBar2.Maximum = 209; this.hScrollBar2.Minimum = -200; this.hScrollBar2.Name = "hScrollBar2"; this.hScrollBar2.Size = new System.Drawing.Size(201, 17); this.hScrollBar2.TabIndex = 59; this.hScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar2_Scroll); // // hScrollBar1 // this.hScrollBar1.Location = new System.Drawing.Point(59, 46); this.hScrollBar1.Maximum = 209; this.hScrollBar1.Minimum = -200; this.hScrollBar1.Name = "hScrollBar1"; this.hScrollBar1.Size = new System.Drawing.Size(201, 17); this.hScrollBar1.TabIndex = 58; this.hScrollBar1.Value = 100; this.hScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar1_Scroll); // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(12, 117); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(41, 12); this.label6.TabIndex = 57; this.label6.Text = "蓝色:"; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(14, 73); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(41, 12); this.label5.TabIndex = 56; this.label5.Text = "绿色:"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(14, 25); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(41, 12); this.label3.TabIndex = 55; this.label3.Text = "红色:"; // // checkBox1 // this.checkBox1.AutoSize = true; this.checkBox1.Location = new System.Drawing.Point(32, 296); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(48, 16); this.checkBox1.TabIndex = 67; this.checkBox1.Text = "单色"; this.checkBox1.UseVisualStyleBackColor = true; this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); // // hScrollBar4 // this.hScrollBar4.Location = new System.Drawing.Point(77, 267); this.hScrollBar4.Maximum = 209; this.hScrollBar4.Minimum = -200; this.hScrollBar4.Name = "hScrollBar4"; this.hScrollBar4.Size = new System.Drawing.Size(201, 17); this.hScrollBar4.TabIndex = 66; this.hScrollBar4.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar4_Scroll); // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(32, 248); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(47, 12); this.label7.TabIndex = 65; this.label7.Text = "常数N:"; // // textBox4 // this.textBox4.Location = new System.Drawing.Point(213, 243); this.textBox4.Name = "textBox4"; this.textBox4.Size = new System.Drawing.Size(46, 21); this.textBox4.TabIndex = 64; this.textBox4.Text = "0"; this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(21, 49); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(65, 12); this.label2.TabIndex = 54; this.label2.Text = "输出通道:"; // // comboBox1 // this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { "红", "绿", "蓝", "灰色"}); this.comboBox1.Location = new System.Drawing.Point(120, 46); this.comboBox1.Name = "comboBox1"; this.comboBox1.Size = new System.Drawing.Size(77, 20); this.comboBox1.TabIndex = 53; this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); // // pictureBox1 // this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(308, 46); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(355, 331); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 68; this.pictureBox1.TabStop = false; // // label9 // this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(267, 248); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(11, 12); this.label9.TabIndex = 72; this.label9.Text = "%"; this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // button1 // this.button1.Location = new System.Drawing.Point(120, 337); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 73; this.button1.Text = "确定"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // ChannelMixForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(679, 395); this.Controls.Add(this.button1); this.Controls.Add(this.label9); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.checkBox1); this.Controls.Add(this.groupBox1); this.Controls.Add(this.hScrollBar4); this.Controls.Add(this.comboBox1); this.Controls.Add(this.label7); this.Controls.Add(this.textBox4); this.Controls.Add(this.label2); this.MaximumSize = new System.Drawing.Size(679, 395); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(679, 395); this.Name = "ChannelMixForm"; this.Text = "通道混合器"; this.TitleCenter = false; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.HScrollBar hScrollBar3; private System.Windows.Forms.HScrollBar hScrollBar2; private System.Windows.Forms.HScrollBar hScrollBar1; private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label3; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.HScrollBar hScrollBar4; private System.Windows.Forms.Label label7; private System.Windows.Forms.TextBox textBox4; private System.Windows.Forms.Label label2; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.Label label8; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label1; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Label label9; private System.Windows.Forms.Button button1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ChannelMixForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class ChannelMixForm : CCWin.Skin_Mac { public ChannelMixForm(string path) { InitializeComponent(); this.DoubleBuffered = true; srcBitmap = new Bitmap (path); curBitmap = new Bitmap(srcBitmap); comboBox1.SelectedIndex = 0; pictureBox1.Image = (Image)curBitmap; zPhoto = new ZPhotoEngineDll(); } private Bitmap curBitmap = null; private Bitmap srcBitmap = null; private int kr = 0, kg = 0, kb = 0, N = 0, channel = 0; private bool singleColor = false; private ZPhotoEngineDll zPhoto = null; public Bitmap getResImage { get { return curBitmap; } } //red private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (pictureBox1.Image != null) { textBox1.Text = hScrollBar1.Value.ToString(); kr = hScrollBar1.Value; kg = hScrollBar2.Value; kb = hScrollBar3.Value; channel = comboBox1.SelectedIndex; pictureBox1.Image = (Image)zPhoto.ChannelMixProcess(curBitmap, channel, kr, kg, kb, N, singleColor, false); } } //green private void hScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (pictureBox1.Image != null) { textBox2.Text = hScrollBar2.Value.ToString(); kr = hScrollBar1.Value; kg = hScrollBar2.Value; kb = hScrollBar3.Value; channel = comboBox1.SelectedIndex; pictureBox1.Image = (Image)zPhoto.ChannelMixProcess(curBitmap, channel, kr, kg, kb, N, singleColor, false); } } //blue private void hScrollBar3_Scroll(object sender, ScrollEventArgs e) { if (pictureBox1.Image != null) { textBox3.Text = hScrollBar3.Value.ToString(); kr = hScrollBar1.Value; kg = hScrollBar2.Value; kb = hScrollBar3.Value; channel = comboBox1.SelectedIndex; pictureBox1.Image = (Image)zPhoto.ChannelMixProcess(curBitmap, channel, kr, kg, kb, N, singleColor, false); } } //N private void hScrollBar4_Scroll(object sender, ScrollEventArgs e) { if (pictureBox1.Image != null) { N = hScrollBar4.Value; kr = hScrollBar1.Value; kg = hScrollBar2.Value; kb = hScrollBar3.Value; channel = comboBox1.SelectedIndex; textBox4.Text = hScrollBar4.Value.ToString(); pictureBox1.Image = (Image)zPhoto.ChannelMixProcess(curBitmap, channel, kr, kg, kb, N, singleColor, true); } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { singleColor = true; comboBox1.SelectedIndex = 3; kr = 40; kg = 40; kb = 20; N = 0; textBox1.Text = kr.ToString(); textBox2.Text = kg.ToString(); textBox3.Text = kb.ToString(); textBox4.Text = N.ToString(); hScrollBar1.Value = 40; hScrollBar2.Value = 40; hScrollBar3.Value = 20; hScrollBar4.Value = 0; curBitmap = new Bitmap(srcBitmap); pictureBox1.Image = (Image)curBitmap; } else { singleColor = false; comboBox1.SelectedIndex = 0; kr = 100; kg = 0; kb = 0; N = 0; textBox1.Text = kr.ToString(); textBox2.Text = kg.ToString(); textBox3.Text = kb.ToString(); textBox4.Text = N.ToString(); hScrollBar1.Value = 100; hScrollBar2.Value = 0; hScrollBar3.Value = 0; hScrollBar4.Value = 0; curBitmap = new Bitmap(srcBitmap); pictureBox1.Image = (Image)curBitmap; } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedIndex == 3) { singleColor = true; checkBox1.Checked = true; } else { singleColor = false; checkBox1.Checked = false; } } private void button1_Click(object sender, EventArgs e) { if (pictureBox1.Image != null) { curBitmap = new Bitmap((Bitmap)pictureBox1.Image); this.DialogResult = DialogResult.OK; this.Close(); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ChannelMixForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ColorbalanceForm.Designer.cs ================================================ namespace TestDemo { partial class ColorbalanceForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.label7 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.hScrollBar3 = new System.Windows.Forms.HScrollBar(); this.textBox3 = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); this.hScrollBar1 = new System.Windows.Forms.HScrollBar(); this.hScrollBar2 = new System.Windows.Forms.HScrollBar(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(253, 45); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(190, 190); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 7; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.checkBox1); this.groupBox1.Controls.Add(this.label7); this.groupBox1.Controls.Add(this.label6); this.groupBox1.Controls.Add(this.label5); this.groupBox1.Controls.Add(this.label4); this.groupBox1.Controls.Add(this.hScrollBar3); this.groupBox1.Controls.Add(this.textBox3); this.groupBox1.Controls.Add(this.label3); this.groupBox1.Controls.Add(this.hScrollBar1); this.groupBox1.Controls.Add(this.hScrollBar2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Location = new System.Drawing.Point(9, 36); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(237, 199); this.groupBox1.TabIndex = 6; this.groupBox1.TabStop = false; // // checkBox1 // this.checkBox1.AutoSize = true; this.checkBox1.Checked = true; this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; this.checkBox1.Location = new System.Drawing.Point(17, 163); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(72, 16); this.checkBox1.TabIndex = 15; this.checkBox1.Text = "保持明度"; this.checkBox1.UseVisualStyleBackColor = true; this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(204, 119); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(29, 12); this.label7.TabIndex = 14; this.label7.Text = "蓝色"; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(6, 119); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(29, 12); this.label6.TabIndex = 13; this.label6.Text = "黄色"; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(204, 47); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(29, 12); this.label5.TabIndex = 12; this.label5.Text = "红色"; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(6, 47); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(29, 12); this.label4.TabIndex = 11; this.label4.Text = "青色"; // // hScrollBar3 // this.hScrollBar3.Location = new System.Drawing.Point(37, 116); this.hScrollBar3.Maximum = 109; this.hScrollBar3.Minimum = -100; this.hScrollBar3.Name = "hScrollBar3"; this.hScrollBar3.Size = new System.Drawing.Size(164, 17); this.hScrollBar3.TabIndex = 9; this.hScrollBar3.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar3_Scroll); // // textBox3 // this.textBox3.Location = new System.Drawing.Point(163, 14); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(38, 21); this.textBox3.TabIndex = 10; this.textBox3.Text = "0"; this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(204, 82); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(29, 12); this.label3.TabIndex = 8; this.label3.Text = "绿色"; // // hScrollBar1 // this.hScrollBar1.Location = new System.Drawing.Point(37, 44); this.hScrollBar1.Maximum = 109; this.hScrollBar1.Minimum = -100; this.hScrollBar1.Name = "hScrollBar1"; this.hScrollBar1.Size = new System.Drawing.Size(164, 17); this.hScrollBar1.TabIndex = 4; this.hScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar1_Scroll); // // hScrollBar2 // this.hScrollBar2.Location = new System.Drawing.Point(37, 80); this.hScrollBar2.Maximum = 109; this.hScrollBar2.Minimum = -100; this.hScrollBar2.Name = "hScrollBar2"; this.hScrollBar2.Size = new System.Drawing.Size(164, 17); this.hScrollBar2.TabIndex = 5; this.hScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar2_Scroll); // // textBox2 // this.textBox2.Location = new System.Drawing.Point(119, 14); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(38, 21); this.textBox2.TabIndex = 7; this.textBox2.Text = "0"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(75, 14); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(38, 21); this.textBox1.TabIndex = 6; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(15, 18); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(53, 12); this.label1.TabIndex = 4; this.label1.Text = "色阶(L):"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(6, 82); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(29, 12); this.label2.TabIndex = 5; this.label2.Text = "洋红"; // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(147, 159); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // ColorbalanceForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(450, 243); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(450, 243); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(450, 243); this.Name = "ColorbalanceForm"; this.Text = "色彩平衡"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.HScrollBar hScrollBar3; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.Label label3; private System.Windows.Forms.HScrollBar hScrollBar1; private System.Windows.Forms.HScrollBar hScrollBar2; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label4; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label6; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ColorbalanceForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class ColorbalanceForm : CCWin.Skin_Mac { public ColorbalanceForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int cyan = 0, magenta = 0, yellow = 0; private bool preserveLuminosity = true; public int getCyan { get { return cyan; } } public int getMagenta { get { return magenta; } } public int getYellow { get { return yellow; } } public bool getLum { get { return preserveLuminosity; } } private void skinButton1_Click(object sender, EventArgs e) { cyan = hScrollBar1.Value; magenta = hScrollBar2.Value; yellow = hScrollBar3.Value; this.DialogResult = DialogResult.OK; this.Close(); } //cyan private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { cyan = hScrollBar1.Value; magenta = hScrollBar2.Value; yellow = hScrollBar3.Value; textBox1.Text = cyan.ToString(); textBox2.Text = magenta.ToString(); textBox3.Text = yellow.ToString(); pictureBox1.Image = (Image)zPhoto.ColorBalanceProcess(curBitmap, cyan, magenta, yellow, 0, preserveLuminosity); } } //magenta private void hScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { cyan = hScrollBar1.Value; magenta = hScrollBar2.Value; yellow = hScrollBar3.Value; textBox1.Text = cyan.ToString(); textBox2.Text = magenta.ToString(); textBox3.Text = yellow.ToString(); pictureBox1.Image = (Image)zPhoto.ColorBalanceProcess(curBitmap, cyan, magenta, yellow, 0, preserveLuminosity); } } //yellow private void hScrollBar3_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { cyan = hScrollBar1.Value; magenta = hScrollBar2.Value; yellow = hScrollBar3.Value; textBox1.Text = cyan.ToString(); textBox2.Text = magenta.ToString(); textBox3.Text = yellow.ToString(); pictureBox1.Image = (Image)zPhoto.ColorBalanceProcess(curBitmap, cyan, magenta, yellow, 0, preserveLuminosity); } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { preserveLuminosity = true; hScrollBar1.Value = 0; hScrollBar2.Value = 0; hScrollBar3.Value = 0; cyan = hScrollBar1.Value; magenta = hScrollBar1.Value; yellow = hScrollBar1.Value; textBox1.Text = cyan.ToString(); textBox2.Text = magenta.ToString(); textBox3.Text = yellow.ToString(); } else { preserveLuminosity = false; hScrollBar1.Value = 0; hScrollBar2.Value = 0; hScrollBar3.Value = 0; cyan = hScrollBar1.Value; magenta = hScrollBar1.Value; yellow = hScrollBar1.Value; textBox1.Text = cyan.ToString(); textBox2.Text = magenta.ToString(); textBox3.Text = yellow.ToString(); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ColorbalanceForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/DifussionForm.Designer.cs ================================================ namespace TestDemo { partial class DifussionForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 11; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 10; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 6; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 6; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 1; this.label1.Text = "数量:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "6"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // DifussionForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "DifussionForm"; this.Text = "扩散"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/DifussionForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class DifussionForm : CCWin.Skin_Mac { public DifussionForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.DiffusionProcess(curBitmap, intensity); } } private Bitmap curBitmap = null; private int intensity = 6; private ZPhotoEngineDll zPhoto = null; public int getIntensity { get { return intensity; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { intensity = skinHScrollBar1.Value; textBox1.Text = intensity.ToString(); pictureBox1.Image = (Image)zPhoto.DiffusionProcess(curBitmap, intensity); } } private void skinButton1_Click(object sender, EventArgs e) { intensity = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/DifussionForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/DisplacementFrom.Designer.cs ================================================ namespace TestDemo { partial class DisplacementFrom { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox3 = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.SuspendLayout(); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(111, 258); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 4; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(18, 53); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(77, 12); this.label1.TabIndex = 5; this.label1.Text = "置换图路径:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(101, 50); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(175, 63); this.textBox1.TabIndex = 6; this.textBox1.Text = "C:\\\\test.jpg"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(18, 132); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(65, 12); this.label2.TabIndex = 7; this.label2.Text = "水平比例:"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(18, 166); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(65, 12); this.label3.TabIndex = 8; this.label3.Text = "垂直比例:"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(101, 129); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(77, 21); this.textBox2.TabIndex = 9; this.textBox2.Text = "10"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // textBox3 // this.textBox3.Location = new System.Drawing.Point(101, 163); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(77, 21); this.textBox3.TabIndex = 10; this.textBox3.Text = "10"; this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(18, 201); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(113, 12); this.label4.TabIndex = 11; this.label4.Text = "置换图:伸展以适合"; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(18, 232); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(149, 12); this.label5.TabIndex = 12; this.label5.Text = "未定义区域:重复边缘像素"; // // DisplacementFrom // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(299, 292); this.Controls.Add(this.label5); this.Controls.Add(this.label4); this.Controls.Add(this.textBox3); this.Controls.Add(this.textBox2); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.Controls.Add(this.skinButton1); this.Name = "DisplacementFrom"; this.Text = "置换"; this.TitleCenter = false; this.ResumeLayout(false); this.PerformLayout(); } #endregion private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/DisplacementFrom.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class DisplacementFrom : CCWin.Skin_Mac { public DisplacementFrom() { InitializeComponent(); } private string mskPath = null; private int hRatio = 10; private int vRatio = 10; public string getMaskPath { get { return mskPath; } } public int getHRatio { get { return hRatio; } } public int getVRatio { get { return vRatio; } } private void skinButton1_Click(object sender, EventArgs e) { mskPath = textBox1.Text.ToString(); hRatio = Convert.ToInt32(textBox2.Text); vRatio = Convert.ToInt32(textBox3.Text); this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/DisplacementFrom.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ExposureForm.Designer.cs ================================================ namespace TestDemo { partial class ExposureForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 7; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 6; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 50; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "强度(I):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // ExposureForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "ExposureForm"; this.Text = "曝光调节"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ExposureForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class ExposureForm : CCWin.Skin_Mac { public ExposureForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; } } private Bitmap curBitmap = null; private int intensity = 0; private ZPhotoEngineDll zPhoto = null; public int getIntensity { get { return intensity; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { intensity = skinHScrollBar1.Value; textBox1.Text = (intensity - 50).ToString(); pictureBox1.Image = (Image)zPhoto.ExposureAdjust(curBitmap, intensity); } } private void skinButton1_Click(object sender, EventArgs e) { intensity = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ExposureForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/FilterForm.Designer.cs ================================================ namespace TestDemo { partial class FilterForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.skinComboBox1 = new CCWin.SkinControl.SkinComboBox(); this.skinPictureBox1 = new CCWin.SkinControl.SkinPictureBox(); this.skinLabel1 = new CCWin.SkinControl.SkinLabel(); this.skinGroupBox1 = new CCWin.SkinControl.SkinGroupBox(); this.skinButton2 = new CCWin.SkinControl.SkinButton(); this.skinButton3 = new CCWin.SkinControl.SkinButton(); ((System.ComponentModel.ISupportInitialize)(this.skinPictureBox1)).BeginInit(); this.skinGroupBox1.SuspendLayout(); this.SuspendLayout(); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(6, 31); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 0; this.skinButton1.Text = "选择模板"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // skinComboBox1 // this.skinComboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; this.skinComboBox1.FormattingEnabled = true; this.skinComboBox1.Items.AddRange(new object[] { "变暗", "正片叠底", "颜色加深", "线性渐变", "深色", "变亮", "滤色", "颜色减淡 ", "颜色线性减淡", "浅色", "叠加", "柔光", "强光", "亮光", "线性", "点光", "实色", "差值", "排除", "减去", "划分"}); this.skinComboBox1.Location = new System.Drawing.Point(197, 31); this.skinComboBox1.Name = "skinComboBox1"; this.skinComboBox1.Size = new System.Drawing.Size(121, 22); this.skinComboBox1.TabIndex = 1; this.skinComboBox1.WaterText = ""; // // skinPictureBox1 // this.skinPictureBox1.BackColor = System.Drawing.Color.Transparent; this.skinPictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.skinPictureBox1.Location = new System.Drawing.Point(19, 114); this.skinPictureBox1.Name = "skinPictureBox1"; this.skinPictureBox1.Size = new System.Drawing.Size(324, 205); this.skinPictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.skinPictureBox1.TabIndex = 2; this.skinPictureBox1.TabStop = false; // // skinLabel1 // this.skinLabel1.AutoSize = true; this.skinLabel1.BackColor = System.Drawing.Color.Transparent; this.skinLabel1.BorderColor = System.Drawing.Color.White; this.skinLabel1.Font = new System.Drawing.Font("Microsoft YaHei", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.skinLabel1.Location = new System.Drawing.Point(102, 33); this.skinLabel1.Name = "skinLabel1"; this.skinLabel1.Size = new System.Drawing.Size(92, 17); this.skinLabel1.TabIndex = 3; this.skinLabel1.Text = "图层混合模式:"; // // skinGroupBox1 // this.skinGroupBox1.BackColor = System.Drawing.Color.Transparent; this.skinGroupBox1.BorderColor = System.Drawing.Color.DarkGray; this.skinGroupBox1.Controls.Add(this.skinButton1); this.skinGroupBox1.Controls.Add(this.skinLabel1); this.skinGroupBox1.Controls.Add(this.skinComboBox1); this.skinGroupBox1.ForeColor = System.Drawing.Color.Blue; this.skinGroupBox1.Location = new System.Drawing.Point(19, 31); this.skinGroupBox1.Name = "skinGroupBox1"; this.skinGroupBox1.RectBackColor = System.Drawing.Color.Transparent; this.skinGroupBox1.RoundStyle = CCWin.SkinClass.RoundStyle.All; this.skinGroupBox1.Size = new System.Drawing.Size(324, 79); this.skinGroupBox1.TabIndex = 4; this.skinGroupBox1.TabStop = false; this.skinGroupBox1.TitleBorderColor = System.Drawing.Color.Red; this.skinGroupBox1.TitleRectBackColor = System.Drawing.Color.Transparent; this.skinGroupBox1.TitleRoundStyle = CCWin.SkinClass.RoundStyle.All; // // skinButton2 // this.skinButton2.BackColor = System.Drawing.Color.Transparent; this.skinButton2.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton2.DownBack = null; this.skinButton2.Location = new System.Drawing.Point(25, 331); this.skinButton2.MouseBack = null; this.skinButton2.Name = "skinButton2"; this.skinButton2.NormlBack = null; this.skinButton2.Size = new System.Drawing.Size(120, 23); this.skinButton2.TabIndex = 5; this.skinButton2.Text = "确定"; this.skinButton2.UseVisualStyleBackColor = false; this.skinButton2.Click += new System.EventHandler(this.skinButton2_Click); // // skinButton3 // this.skinButton3.BackColor = System.Drawing.Color.Transparent; this.skinButton3.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton3.DownBack = null; this.skinButton3.Location = new System.Drawing.Point(216, 331); this.skinButton3.MouseBack = null; this.skinButton3.Name = "skinButton3"; this.skinButton3.NormlBack = null; this.skinButton3.Size = new System.Drawing.Size(120, 23); this.skinButton3.TabIndex = 6; this.skinButton3.Text = "取消"; this.skinButton3.UseVisualStyleBackColor = false; this.skinButton3.Click += new System.EventHandler(this.skinButton3_Click); // // FilterForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(362, 367); this.Controls.Add(this.skinButton3); this.Controls.Add(this.skinButton2); this.Controls.Add(this.skinGroupBox1); this.Controls.Add(this.skinPictureBox1); this.MaximumSize = new System.Drawing.Size(362, 367); this.MinimumSize = new System.Drawing.Size(362, 367); this.Name = "FilterForm"; this.Text = "自定义滤镜"; this.TitleCenter = false; this.Load += new System.EventHandler(this.FilterForm_Load); ((System.ComponentModel.ISupportInitialize)(this.skinPictureBox1)).EndInit(); this.skinGroupBox1.ResumeLayout(false); this.skinGroupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private CCWin.SkinControl.SkinButton skinButton1; private CCWin.SkinControl.SkinComboBox skinComboBox1; private CCWin.SkinControl.SkinPictureBox skinPictureBox1; private CCWin.SkinControl.SkinLabel skinLabel1; private CCWin.SkinControl.SkinGroupBox skinGroupBox1; private CCWin.SkinControl.SkinButton skinButton2; private CCWin.SkinControl.SkinButton skinButton3; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/FilterForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CCWin; namespace TestDemo { public partial class FilterForm : Skin_Mac { private Bitmap curBitmap = null; private string curFileName; private int filterId = 0; public int getMode { get { return filterId; } } public string getMaskPath { get { return curFileName; } } public FilterForm( ) { InitializeComponent(); } //打开图像函数 public void OpenFile() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "所有图像文件 | *.bmp; *.pcx; *.png; *.jpg; *.gif;" + "*.tif; *.ico; *.dxf; *.cgm; *.cdr; *.wmf; *.eps; *.emf|" + "位图( *.bmp; *.jpg; *.png;...) | *.bmp; *.pcx; *.png; *.jpg; *.gif; *.tif; *.ico|" + "矢量图( *.wmf; *.eps; *.emf;...) | *.dxf; *.cgm; *.cdr; *.wmf; *.eps; *.emf"; ofd.ShowHelp = true; ofd.Title = "打开图像文件"; if (ofd.ShowDialog() == DialogResult.OK) { curFileName = ofd.FileName; try { curBitmap = (Bitmap)System.Drawing.Image.FromFile(curFileName); //srcBitmap = new Bitmap(curBitmap); } catch (Exception exp) { MessageBox.Show(exp.Message); } } } private void skinButton1_Click(object sender, EventArgs e) { OpenFile(); if(curBitmap != null) { skinPictureBox1.Image = (Image)curBitmap; } } private void FilterForm_Load(object sender, EventArgs e) { skinComboBox1.SelectedIndex = 11; } private void skinButton3_Click(object sender, EventArgs e) { this.Close(); } private void skinButton2_Click(object sender, EventArgs e) { filterId = Convert.ToInt32(skinComboBox1.SelectedIndex)+1; if (curBitmap != null) { this.DialogResult = DialogResult.OK; this.Close(); } else { MessageForm msgForm = new MessageForm("请选择模板!"); msgForm.Show(); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/FilterForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Form1.Designer.cs ================================================ namespace TestDemo { partial class Form1 { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.label1 = new System.Windows.Forms.Label(); this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.文件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.打开ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.保存ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator133 = new System.Windows.Forms.ToolStripSeparator(); this.恢复原图ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.基本变换ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.图像变换ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.图像旋转ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.图像缩放ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); this.图像翻转ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.水平翻转ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator134 = new System.Windows.Forms.ToolStripSeparator(); this.垂直翻转ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.图像调整ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.自动色调ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.自动对比度ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator(); this.色调均化ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator(); this.亮度对比度ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator(); this.色阶ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator15 = new System.Windows.Forms.ToolStripSeparator(); this.色相饱和度ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator16 = new System.Windows.Forms.ToolStripSeparator(); this.色彩平衡ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); this.通道混合器ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator17 = new System.Windows.Forms.ToolStripSeparator(); this.反相ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator19 = new System.Windows.Forms.ToolStripSeparator(); this.色调分离ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator20 = new System.Windows.Forms.ToolStripSeparator(); this.阈值ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator21 = new System.Windows.Forms.ToolStripSeparator(); this.去色ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator22 = new System.Windows.Forms.ToolStripSeparator(); this.高光阴影调节ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator23 = new System.Windows.Forms.ToolStripSeparator(); this.曝光调节ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator24 = new System.Windows.Forms.ToolStripSeparator(); this.色温调节ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator25 = new System.Windows.Forms.ToolStripSeparator(); this.黑白ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator18 = new System.Windows.Forms.ToolStripSeparator(); this.gamma调节ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator36 = new System.Windows.Forms.ToolStripSeparator(); this.自然饱和度ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); this.风格化ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.查找边缘ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator26 = new System.Windows.Forms.ToolStripSeparator(); this.浮雕效果ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator27 = new System.Windows.Forms.ToolStripSeparator(); this.扩散ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator28 = new System.Windows.Forms.ToolStripSeparator(); this.曝光过度ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); this.图像模糊ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.动感模糊ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator30 = new System.Windows.Forms.ToolStripSeparator(); this.均值模糊ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator31 = new System.Windows.Forms.ToolStripSeparator(); this.高斯模糊ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator32 = new System.Windows.Forms.ToolStripSeparator(); this.旋转模糊ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator33 = new System.Windows.Forms.ToolStripSeparator(); this.缩放模糊ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator29 = new System.Windows.Forms.ToolStripSeparator(); this.表面模糊ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator34 = new System.Windows.Forms.ToolStripSeparator(); this.平均ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator156 = new System.Windows.Forms.ToolStripSeparator(); this.中间色ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator155 = new System.Windows.Forms.ToolStripSeparator(); this.最大值ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator154 = new System.Windows.Forms.ToolStripSeparator(); this.最小值ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator157 = new System.Windows.Forms.ToolStripSeparator(); this.smartBlurToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator37 = new System.Windows.Forms.ToolStripSeparator(); this.anisotropicFilterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); this.像素化ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.马赛克ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator35 = new System.Windows.Forms.ToolStripSeparator(); this.碎片ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); this.图像锐化ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.uSM锐化ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); this.高反差保留ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator135 = new System.Windows.Forms.ToolStripSeparator(); this.直方图ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator158 = new System.Windows.Forms.ToolStripSeparator(); this.图像变形ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator159 = new System.Windows.Forms.ToolStripSeparator(); this.waveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator38 = new System.Windows.Forms.ToolStripSeparator(); this.置换ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.panel2 = new System.Windows.Forms.Panel(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel(); this.噪声ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator39 = new System.Windows.Forms.ToolStripSeparator(); this.menuStrip1.SuspendLayout(); this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.statusStrip1.SuspendLayout(); this.SuspendLayout(); // // label1 // this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(10, 566); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(365, 12); this.label1.TabIndex = 18; this.label1.Text = "我们提供PC/Android/IOS平台通用图像处理代码,更多下载请访问:"; // // menuStrip1 // this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.文件ToolStripMenuItem, this.基本变换ToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(4, 32); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Size = new System.Drawing.Size(810, 25); this.menuStrip1.TabIndex = 19; this.menuStrip1.Text = "menuStrip1"; // // 文件ToolStripMenuItem // this.文件ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.打开ToolStripMenuItem, this.toolStripSeparator1, this.保存ToolStripMenuItem, this.toolStripSeparator133, this.恢复原图ToolStripMenuItem}); this.文件ToolStripMenuItem.Name = "文件ToolStripMenuItem"; this.文件ToolStripMenuItem.Size = new System.Drawing.Size(44, 21); this.文件ToolStripMenuItem.Text = "文件"; // // 打开ToolStripMenuItem // this.打开ToolStripMenuItem.Name = "打开ToolStripMenuItem"; this.打开ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.打开ToolStripMenuItem.Text = "打开"; this.打开ToolStripMenuItem.Click += new System.EventHandler(this.打开ToolStripMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Size = new System.Drawing.Size(121, 6); // // 保存ToolStripMenuItem // this.保存ToolStripMenuItem.Name = "保存ToolStripMenuItem"; this.保存ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.保存ToolStripMenuItem.Text = "保存"; this.保存ToolStripMenuItem.Click += new System.EventHandler(this.保存ToolStripMenuItem_Click); // // toolStripSeparator133 // this.toolStripSeparator133.Name = "toolStripSeparator133"; this.toolStripSeparator133.Size = new System.Drawing.Size(121, 6); // // 恢复原图ToolStripMenuItem // this.恢复原图ToolStripMenuItem.Name = "恢复原图ToolStripMenuItem"; this.恢复原图ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.恢复原图ToolStripMenuItem.Text = "恢复原图"; this.恢复原图ToolStripMenuItem.Click += new System.EventHandler(this.恢复原图ToolStripMenuItem_Click); // // 基本变换ToolStripMenuItem // this.基本变换ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.图像变换ToolStripMenuItem, this.toolStripSeparator3, this.图像调整ToolStripMenuItem, this.toolStripSeparator4, this.风格化ToolStripMenuItem, this.toolStripSeparator5, this.图像模糊ToolStripMenuItem, this.toolStripSeparator6, this.像素化ToolStripMenuItem, this.toolStripSeparator8, this.图像锐化ToolStripMenuItem, this.toolStripSeparator9, this.高反差保留ToolStripMenuItem, this.toolStripSeparator135, this.直方图ToolStripMenuItem, this.toolStripSeparator158, this.图像变形ToolStripMenuItem}); this.基本变换ToolStripMenuItem.Name = "基本变换ToolStripMenuItem"; this.基本变换ToolStripMenuItem.Size = new System.Drawing.Size(44, 21); this.基本变换ToolStripMenuItem.Text = "图像"; // // 图像变换ToolStripMenuItem // this.图像变换ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.图像旋转ToolStripMenuItem, this.toolStripSeparator2, this.图像缩放ToolStripMenuItem, this.toolStripSeparator10, this.图像翻转ToolStripMenuItem}); this.图像变换ToolStripMenuItem.Name = "图像变换ToolStripMenuItem"; this.图像变换ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.图像变换ToolStripMenuItem.Text = "图像变换"; // // 图像旋转ToolStripMenuItem // this.图像旋转ToolStripMenuItem.Name = "图像旋转ToolStripMenuItem"; this.图像旋转ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.图像旋转ToolStripMenuItem.Text = "图像旋转"; this.图像旋转ToolStripMenuItem.Click += new System.EventHandler(this.图像旋转ToolStripMenuItem_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Size = new System.Drawing.Size(121, 6); // // 图像缩放ToolStripMenuItem // this.图像缩放ToolStripMenuItem.Name = "图像缩放ToolStripMenuItem"; this.图像缩放ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.图像缩放ToolStripMenuItem.Text = "图像缩放"; this.图像缩放ToolStripMenuItem.Click += new System.EventHandler(this.图像缩放ToolStripMenuItem_Click); // // toolStripSeparator10 // this.toolStripSeparator10.Name = "toolStripSeparator10"; this.toolStripSeparator10.Size = new System.Drawing.Size(121, 6); // // 图像翻转ToolStripMenuItem // this.图像翻转ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.水平翻转ToolStripMenuItem, this.toolStripSeparator134, this.垂直翻转ToolStripMenuItem}); this.图像翻转ToolStripMenuItem.Name = "图像翻转ToolStripMenuItem"; this.图像翻转ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.图像翻转ToolStripMenuItem.Text = "图像翻转"; // // 水平翻转ToolStripMenuItem // this.水平翻转ToolStripMenuItem.Name = "水平翻转ToolStripMenuItem"; this.水平翻转ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.水平翻转ToolStripMenuItem.Text = "水平翻转"; this.水平翻转ToolStripMenuItem.Click += new System.EventHandler(this.水平翻转ToolStripMenuItem_Click); // // toolStripSeparator134 // this.toolStripSeparator134.Name = "toolStripSeparator134"; this.toolStripSeparator134.Size = new System.Drawing.Size(121, 6); // // 垂直翻转ToolStripMenuItem // this.垂直翻转ToolStripMenuItem.Name = "垂直翻转ToolStripMenuItem"; this.垂直翻转ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); this.垂直翻转ToolStripMenuItem.Text = "垂直翻转"; this.垂直翻转ToolStripMenuItem.Click += new System.EventHandler(this.垂直翻转ToolStripMenuItem_Click); // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; this.toolStripSeparator3.Size = new System.Drawing.Size(149, 6); // // 图像调整ToolStripMenuItem // this.图像调整ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.自动色调ToolStripMenuItem, this.toolStripSeparator11, this.自动对比度ToolStripMenuItem, this.toolStripSeparator12, this.色调均化ToolStripMenuItem, this.toolStripSeparator13, this.亮度对比度ToolStripMenuItem, this.toolStripSeparator14, this.色阶ToolStripMenuItem, this.toolStripSeparator15, this.色相饱和度ToolStripMenuItem, this.toolStripSeparator16, this.色彩平衡ToolStripMenuItem, this.toolStripSeparator7, this.通道混合器ToolStripMenuItem, this.toolStripSeparator17, this.反相ToolStripMenuItem, this.toolStripSeparator19, this.色调分离ToolStripMenuItem, this.toolStripSeparator20, this.阈值ToolStripMenuItem, this.toolStripSeparator21, this.去色ToolStripMenuItem, this.toolStripSeparator22, this.高光阴影调节ToolStripMenuItem, this.toolStripSeparator23, this.曝光调节ToolStripMenuItem, this.toolStripSeparator24, this.色温调节ToolStripMenuItem, this.toolStripSeparator25, this.黑白ToolStripMenuItem1, this.toolStripSeparator18, this.gamma调节ToolStripMenuItem, this.toolStripSeparator36, this.自然饱和度ToolStripMenuItem}); this.图像调整ToolStripMenuItem.Name = "图像调整ToolStripMenuItem"; this.图像调整ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.图像调整ToolStripMenuItem.Text = "图像调整"; // // 自动色调ToolStripMenuItem // this.自动色调ToolStripMenuItem.Name = "自动色调ToolStripMenuItem"; this.自动色调ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.自动色调ToolStripMenuItem.Text = "自动色调"; this.自动色调ToolStripMenuItem.Click += new System.EventHandler(this.自动色调ToolStripMenuItem_Click); // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; this.toolStripSeparator11.Size = new System.Drawing.Size(150, 6); // // 自动对比度ToolStripMenuItem // this.自动对比度ToolStripMenuItem.Name = "自动对比度ToolStripMenuItem"; this.自动对比度ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.自动对比度ToolStripMenuItem.Text = "自动对比度"; this.自动对比度ToolStripMenuItem.Click += new System.EventHandler(this.自动对比度ToolStripMenuItem_Click); // // toolStripSeparator12 // this.toolStripSeparator12.Name = "toolStripSeparator12"; this.toolStripSeparator12.Size = new System.Drawing.Size(150, 6); // // 色调均化ToolStripMenuItem // this.色调均化ToolStripMenuItem.Name = "色调均化ToolStripMenuItem"; this.色调均化ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.色调均化ToolStripMenuItem.Text = "色调均化"; this.色调均化ToolStripMenuItem.Click += new System.EventHandler(this.色调均化ToolStripMenuItem_Click); // // toolStripSeparator13 // this.toolStripSeparator13.Name = "toolStripSeparator13"; this.toolStripSeparator13.Size = new System.Drawing.Size(150, 6); // // 亮度对比度ToolStripMenuItem // this.亮度对比度ToolStripMenuItem.Name = "亮度对比度ToolStripMenuItem"; this.亮度对比度ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.亮度对比度ToolStripMenuItem.Text = "亮度/对比度"; this.亮度对比度ToolStripMenuItem.Click += new System.EventHandler(this.亮度对比度ToolStripMenuItem_Click); // // toolStripSeparator14 // this.toolStripSeparator14.Name = "toolStripSeparator14"; this.toolStripSeparator14.Size = new System.Drawing.Size(150, 6); // // 色阶ToolStripMenuItem // this.色阶ToolStripMenuItem.Name = "色阶ToolStripMenuItem"; this.色阶ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.色阶ToolStripMenuItem.Text = "色阶"; this.色阶ToolStripMenuItem.Click += new System.EventHandler(this.色阶ToolStripMenuItem_Click); // // toolStripSeparator15 // this.toolStripSeparator15.Name = "toolStripSeparator15"; this.toolStripSeparator15.Size = new System.Drawing.Size(150, 6); // // 色相饱和度ToolStripMenuItem // this.色相饱和度ToolStripMenuItem.Name = "色相饱和度ToolStripMenuItem"; this.色相饱和度ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.色相饱和度ToolStripMenuItem.Text = "色相/饱和度"; this.色相饱和度ToolStripMenuItem.Click += new System.EventHandler(this.色相饱和度ToolStripMenuItem_Click); // // toolStripSeparator16 // this.toolStripSeparator16.Name = "toolStripSeparator16"; this.toolStripSeparator16.Size = new System.Drawing.Size(150, 6); // // 色彩平衡ToolStripMenuItem // this.色彩平衡ToolStripMenuItem.Name = "色彩平衡ToolStripMenuItem"; this.色彩平衡ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.色彩平衡ToolStripMenuItem.Text = "色彩平衡"; this.色彩平衡ToolStripMenuItem.Click += new System.EventHandler(this.色彩平衡ToolStripMenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; this.toolStripSeparator7.Size = new System.Drawing.Size(150, 6); // // 通道混合器ToolStripMenuItem // this.通道混合器ToolStripMenuItem.Name = "通道混合器ToolStripMenuItem"; this.通道混合器ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.通道混合器ToolStripMenuItem.Text = "通道混合器"; this.通道混合器ToolStripMenuItem.Click += new System.EventHandler(this.通道混合器ToolStripMenuItem_Click_1); // // toolStripSeparator17 // this.toolStripSeparator17.Name = "toolStripSeparator17"; this.toolStripSeparator17.Size = new System.Drawing.Size(150, 6); // // 反相ToolStripMenuItem // this.反相ToolStripMenuItem.Name = "反相ToolStripMenuItem"; this.反相ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.反相ToolStripMenuItem.Text = "反相"; this.反相ToolStripMenuItem.Click += new System.EventHandler(this.反相ToolStripMenuItem_Click); // // toolStripSeparator19 // this.toolStripSeparator19.Name = "toolStripSeparator19"; this.toolStripSeparator19.Size = new System.Drawing.Size(150, 6); // // 色调分离ToolStripMenuItem // this.色调分离ToolStripMenuItem.Name = "色调分离ToolStripMenuItem"; this.色调分离ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.色调分离ToolStripMenuItem.Text = "色调分离"; this.色调分离ToolStripMenuItem.Click += new System.EventHandler(this.色调分离ToolStripMenuItem_Click); // // toolStripSeparator20 // this.toolStripSeparator20.Name = "toolStripSeparator20"; this.toolStripSeparator20.Size = new System.Drawing.Size(150, 6); // // 阈值ToolStripMenuItem // this.阈值ToolStripMenuItem.Name = "阈值ToolStripMenuItem"; this.阈值ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.阈值ToolStripMenuItem.Text = "阈值"; this.阈值ToolStripMenuItem.Click += new System.EventHandler(this.阈值ToolStripMenuItem_Click); // // toolStripSeparator21 // this.toolStripSeparator21.Name = "toolStripSeparator21"; this.toolStripSeparator21.Size = new System.Drawing.Size(150, 6); // // 去色ToolStripMenuItem // this.去色ToolStripMenuItem.Name = "去色ToolStripMenuItem"; this.去色ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.去色ToolStripMenuItem.Text = "去色"; this.去色ToolStripMenuItem.Click += new System.EventHandler(this.去色ToolStripMenuItem_Click); // // toolStripSeparator22 // this.toolStripSeparator22.Name = "toolStripSeparator22"; this.toolStripSeparator22.Size = new System.Drawing.Size(150, 6); // // 高光阴影调节ToolStripMenuItem // this.高光阴影调节ToolStripMenuItem.Name = "高光阴影调节ToolStripMenuItem"; this.高光阴影调节ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.高光阴影调节ToolStripMenuItem.Text = "高光/阴影调节"; this.高光阴影调节ToolStripMenuItem.Click += new System.EventHandler(this.高光阴影调节ToolStripMenuItem_Click); // // toolStripSeparator23 // this.toolStripSeparator23.Name = "toolStripSeparator23"; this.toolStripSeparator23.Size = new System.Drawing.Size(150, 6); // // 曝光调节ToolStripMenuItem // this.曝光调节ToolStripMenuItem.Name = "曝光调节ToolStripMenuItem"; this.曝光调节ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.曝光调节ToolStripMenuItem.Text = "曝光调节"; this.曝光调节ToolStripMenuItem.Click += new System.EventHandler(this.曝光调节ToolStripMenuItem_Click); // // toolStripSeparator24 // this.toolStripSeparator24.Name = "toolStripSeparator24"; this.toolStripSeparator24.Size = new System.Drawing.Size(150, 6); // // 色温调节ToolStripMenuItem // this.色温调节ToolStripMenuItem.Name = "色温调节ToolStripMenuItem"; this.色温调节ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.色温调节ToolStripMenuItem.Text = "色温调节"; this.色温调节ToolStripMenuItem.Click += new System.EventHandler(this.色温调节ToolStripMenuItem_Click); // // toolStripSeparator25 // this.toolStripSeparator25.Name = "toolStripSeparator25"; this.toolStripSeparator25.Size = new System.Drawing.Size(150, 6); // // 黑白ToolStripMenuItem1 // this.黑白ToolStripMenuItem1.Name = "黑白ToolStripMenuItem1"; this.黑白ToolStripMenuItem1.Size = new System.Drawing.Size(153, 22); this.黑白ToolStripMenuItem1.Text = "黑白"; this.黑白ToolStripMenuItem1.Click += new System.EventHandler(this.黑白ToolStripMenuItem1_Click); // // toolStripSeparator18 // this.toolStripSeparator18.Name = "toolStripSeparator18"; this.toolStripSeparator18.Size = new System.Drawing.Size(150, 6); // // gamma调节ToolStripMenuItem // this.gamma调节ToolStripMenuItem.Name = "gamma调节ToolStripMenuItem"; this.gamma调节ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.gamma调节ToolStripMenuItem.Text = "Gamma调节"; this.gamma调节ToolStripMenuItem.Click += new System.EventHandler(this.gamma调节ToolStripMenuItem_Click); // // toolStripSeparator36 // this.toolStripSeparator36.Name = "toolStripSeparator36"; this.toolStripSeparator36.Size = new System.Drawing.Size(150, 6); // // 自然饱和度ToolStripMenuItem // this.自然饱和度ToolStripMenuItem.Name = "自然饱和度ToolStripMenuItem"; this.自然饱和度ToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.自然饱和度ToolStripMenuItem.Text = "自然饱和度"; this.自然饱和度ToolStripMenuItem.Click += new System.EventHandler(this.自然饱和度ToolStripMenuItem_Click); // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; this.toolStripSeparator4.Size = new System.Drawing.Size(149, 6); // // 风格化ToolStripMenuItem // this.风格化ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.查找边缘ToolStripMenuItem, this.toolStripSeparator26, this.浮雕效果ToolStripMenuItem, this.toolStripSeparator27, this.扩散ToolStripMenuItem, this.toolStripSeparator28, this.曝光过度ToolStripMenuItem}); this.风格化ToolStripMenuItem.Name = "风格化ToolStripMenuItem"; this.风格化ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.风格化ToolStripMenuItem.Text = "风格化"; // // 查找边缘ToolStripMenuItem // this.查找边缘ToolStripMenuItem.Name = "查找边缘ToolStripMenuItem"; this.查找边缘ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.查找边缘ToolStripMenuItem.Text = "查找边缘"; this.查找边缘ToolStripMenuItem.Click += new System.EventHandler(this.查找边缘ToolStripMenuItem_Click); // // toolStripSeparator26 // this.toolStripSeparator26.Name = "toolStripSeparator26"; this.toolStripSeparator26.Size = new System.Drawing.Size(149, 6); // // 浮雕效果ToolStripMenuItem // this.浮雕效果ToolStripMenuItem.Name = "浮雕效果ToolStripMenuItem"; this.浮雕效果ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.浮雕效果ToolStripMenuItem.Text = "浮雕效果"; this.浮雕效果ToolStripMenuItem.Click += new System.EventHandler(this.浮雕效果ToolStripMenuItem_Click); // // toolStripSeparator27 // this.toolStripSeparator27.Name = "toolStripSeparator27"; this.toolStripSeparator27.Size = new System.Drawing.Size(149, 6); // // 扩散ToolStripMenuItem // this.扩散ToolStripMenuItem.Name = "扩散ToolStripMenuItem"; this.扩散ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.扩散ToolStripMenuItem.Text = "扩散"; this.扩散ToolStripMenuItem.Click += new System.EventHandler(this.扩散ToolStripMenuItem_Click); // // toolStripSeparator28 // this.toolStripSeparator28.Name = "toolStripSeparator28"; this.toolStripSeparator28.Size = new System.Drawing.Size(149, 6); // // 曝光过度ToolStripMenuItem // this.曝光过度ToolStripMenuItem.Name = "曝光过度ToolStripMenuItem"; this.曝光过度ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.曝光过度ToolStripMenuItem.Text = "曝光过度"; this.曝光过度ToolStripMenuItem.Click += new System.EventHandler(this.曝光过度ToolStripMenuItem_Click); // // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; this.toolStripSeparator5.Size = new System.Drawing.Size(149, 6); // // 图像模糊ToolStripMenuItem // this.图像模糊ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.动感模糊ToolStripMenuItem, this.toolStripSeparator30, this.均值模糊ToolStripMenuItem, this.toolStripSeparator31, this.高斯模糊ToolStripMenuItem, this.toolStripSeparator32, this.旋转模糊ToolStripMenuItem, this.toolStripSeparator33, this.缩放模糊ToolStripMenuItem, this.toolStripSeparator29, this.表面模糊ToolStripMenuItem, this.toolStripSeparator34, this.平均ToolStripMenuItem, this.toolStripSeparator156, this.中间色ToolStripMenuItem, this.toolStripSeparator155, this.最大值ToolStripMenuItem, this.toolStripSeparator154, this.最小值ToolStripMenuItem, this.toolStripSeparator157, this.smartBlurToolStripMenuItem, this.toolStripSeparator37, this.anisotropicFilterToolStripMenuItem}); this.图像模糊ToolStripMenuItem.Name = "图像模糊ToolStripMenuItem"; this.图像模糊ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.图像模糊ToolStripMenuItem.Text = "图像模糊"; // // 动感模糊ToolStripMenuItem // this.动感模糊ToolStripMenuItem.Name = "动感模糊ToolStripMenuItem"; this.动感模糊ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.动感模糊ToolStripMenuItem.Text = "动感模糊"; this.动感模糊ToolStripMenuItem.Click += new System.EventHandler(this.动感模糊ToolStripMenuItem_Click); // // toolStripSeparator30 // this.toolStripSeparator30.Name = "toolStripSeparator30"; this.toolStripSeparator30.Size = new System.Drawing.Size(167, 6); // // 均值模糊ToolStripMenuItem // this.均值模糊ToolStripMenuItem.Name = "均值模糊ToolStripMenuItem"; this.均值模糊ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.均值模糊ToolStripMenuItem.Text = "均值模糊"; this.均值模糊ToolStripMenuItem.Click += new System.EventHandler(this.均值模糊ToolStripMenuItem_Click); // // toolStripSeparator31 // this.toolStripSeparator31.Name = "toolStripSeparator31"; this.toolStripSeparator31.Size = new System.Drawing.Size(167, 6); // // 高斯模糊ToolStripMenuItem // this.高斯模糊ToolStripMenuItem.Name = "高斯模糊ToolStripMenuItem"; this.高斯模糊ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.高斯模糊ToolStripMenuItem.Text = "高斯模糊"; this.高斯模糊ToolStripMenuItem.Click += new System.EventHandler(this.高斯模糊ToolStripMenuItem_Click); // // toolStripSeparator32 // this.toolStripSeparator32.Name = "toolStripSeparator32"; this.toolStripSeparator32.Size = new System.Drawing.Size(167, 6); // // 旋转模糊ToolStripMenuItem // this.旋转模糊ToolStripMenuItem.Name = "旋转模糊ToolStripMenuItem"; this.旋转模糊ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.旋转模糊ToolStripMenuItem.Text = "旋转模糊"; this.旋转模糊ToolStripMenuItem.Click += new System.EventHandler(this.旋转模糊ToolStripMenuItem_Click); // // toolStripSeparator33 // this.toolStripSeparator33.Name = "toolStripSeparator33"; this.toolStripSeparator33.Size = new System.Drawing.Size(167, 6); // // 缩放模糊ToolStripMenuItem // this.缩放模糊ToolStripMenuItem.Name = "缩放模糊ToolStripMenuItem"; this.缩放模糊ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.缩放模糊ToolStripMenuItem.Text = "缩放模糊"; this.缩放模糊ToolStripMenuItem.Click += new System.EventHandler(this.缩放模糊ToolStripMenuItem_Click); // // toolStripSeparator29 // this.toolStripSeparator29.Name = "toolStripSeparator29"; this.toolStripSeparator29.Size = new System.Drawing.Size(167, 6); // // 表面模糊ToolStripMenuItem // this.表面模糊ToolStripMenuItem.Name = "表面模糊ToolStripMenuItem"; this.表面模糊ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.表面模糊ToolStripMenuItem.Text = "表面模糊"; this.表面模糊ToolStripMenuItem.Click += new System.EventHandler(this.表面模糊ToolStripMenuItem_Click); // // toolStripSeparator34 // this.toolStripSeparator34.Name = "toolStripSeparator34"; this.toolStripSeparator34.Size = new System.Drawing.Size(167, 6); // // 平均ToolStripMenuItem // this.平均ToolStripMenuItem.Name = "平均ToolStripMenuItem"; this.平均ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.平均ToolStripMenuItem.Text = "平均"; this.平均ToolStripMenuItem.Click += new System.EventHandler(this.平均ToolStripMenuItem_Click); // // toolStripSeparator156 // this.toolStripSeparator156.Name = "toolStripSeparator156"; this.toolStripSeparator156.Size = new System.Drawing.Size(167, 6); // // 中间色ToolStripMenuItem // this.中间色ToolStripMenuItem.Name = "中间色ToolStripMenuItem"; this.中间色ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.中间色ToolStripMenuItem.Text = "中间色"; this.中间色ToolStripMenuItem.Click += new System.EventHandler(this.中间色ToolStripMenuItem_Click); // // toolStripSeparator155 // this.toolStripSeparator155.Name = "toolStripSeparator155"; this.toolStripSeparator155.Size = new System.Drawing.Size(167, 6); // // 最大值ToolStripMenuItem // this.最大值ToolStripMenuItem.Name = "最大值ToolStripMenuItem"; this.最大值ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.最大值ToolStripMenuItem.Text = "最大值"; this.最大值ToolStripMenuItem.Click += new System.EventHandler(this.最大值ToolStripMenuItem_Click); // // toolStripSeparator154 // this.toolStripSeparator154.Name = "toolStripSeparator154"; this.toolStripSeparator154.Size = new System.Drawing.Size(167, 6); // // 最小值ToolStripMenuItem // this.最小值ToolStripMenuItem.Name = "最小值ToolStripMenuItem"; this.最小值ToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.最小值ToolStripMenuItem.Text = "最小值"; this.最小值ToolStripMenuItem.Click += new System.EventHandler(this.最小值ToolStripMenuItem_Click); // // toolStripSeparator157 // this.toolStripSeparator157.Name = "toolStripSeparator157"; this.toolStripSeparator157.Size = new System.Drawing.Size(167, 6); // // smartBlurToolStripMenuItem // this.smartBlurToolStripMenuItem.Name = "smartBlurToolStripMenuItem"; this.smartBlurToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.smartBlurToolStripMenuItem.Text = "SmartBlur"; this.smartBlurToolStripMenuItem.Click += new System.EventHandler(this.smartBlurToolStripMenuItem_Click); // // toolStripSeparator37 // this.toolStripSeparator37.Name = "toolStripSeparator37"; this.toolStripSeparator37.Size = new System.Drawing.Size(167, 6); // // anisotropicFilterToolStripMenuItem // this.anisotropicFilterToolStripMenuItem.Name = "anisotropicFilterToolStripMenuItem"; this.anisotropicFilterToolStripMenuItem.Size = new System.Drawing.Size(170, 22); this.anisotropicFilterToolStripMenuItem.Text = "AnisotropicFilter"; this.anisotropicFilterToolStripMenuItem.Click += new System.EventHandler(this.anisotropicFilterToolStripMenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; this.toolStripSeparator6.Size = new System.Drawing.Size(149, 6); // // 像素化ToolStripMenuItem // this.像素化ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.马赛克ToolStripMenuItem, this.toolStripSeparator35, this.碎片ToolStripMenuItem, this.toolStripSeparator39, this.噪声ToolStripMenuItem}); this.像素化ToolStripMenuItem.Name = "像素化ToolStripMenuItem"; this.像素化ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.像素化ToolStripMenuItem.Text = "像素化"; // // 马赛克ToolStripMenuItem // this.马赛克ToolStripMenuItem.Name = "马赛克ToolStripMenuItem"; this.马赛克ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.马赛克ToolStripMenuItem.Text = "马赛克"; this.马赛克ToolStripMenuItem.Click += new System.EventHandler(this.马赛克ToolStripMenuItem_Click); // // toolStripSeparator35 // this.toolStripSeparator35.Name = "toolStripSeparator35"; this.toolStripSeparator35.Size = new System.Drawing.Size(149, 6); // // 碎片ToolStripMenuItem // this.碎片ToolStripMenuItem.Name = "碎片ToolStripMenuItem"; this.碎片ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.碎片ToolStripMenuItem.Text = "碎片"; this.碎片ToolStripMenuItem.Click += new System.EventHandler(this.碎片ToolStripMenuItem_Click); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; this.toolStripSeparator8.Size = new System.Drawing.Size(149, 6); // // 图像锐化ToolStripMenuItem // this.图像锐化ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.uSM锐化ToolStripMenuItem}); this.图像锐化ToolStripMenuItem.Name = "图像锐化ToolStripMenuItem"; this.图像锐化ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.图像锐化ToolStripMenuItem.Text = "图像锐化"; // // uSM锐化ToolStripMenuItem // this.uSM锐化ToolStripMenuItem.Name = "uSM锐化ToolStripMenuItem"; this.uSM锐化ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.uSM锐化ToolStripMenuItem.Text = "USM锐化"; this.uSM锐化ToolStripMenuItem.Click += new System.EventHandler(this.uSM锐化ToolStripMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; this.toolStripSeparator9.Size = new System.Drawing.Size(149, 6); // // 高反差保留ToolStripMenuItem // this.高反差保留ToolStripMenuItem.Name = "高反差保留ToolStripMenuItem"; this.高反差保留ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.高反差保留ToolStripMenuItem.Text = "高反差保留"; this.高反差保留ToolStripMenuItem.Click += new System.EventHandler(this.高反差保留ToolStripMenuItem_Click); // // toolStripSeparator135 // this.toolStripSeparator135.Name = "toolStripSeparator135"; this.toolStripSeparator135.Size = new System.Drawing.Size(149, 6); // // 直方图ToolStripMenuItem // this.直方图ToolStripMenuItem.Name = "直方图ToolStripMenuItem"; this.直方图ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.直方图ToolStripMenuItem.Text = "直方图"; this.直方图ToolStripMenuItem.Click += new System.EventHandler(this.直方图ToolStripMenuItem_Click); // // toolStripSeparator158 // this.toolStripSeparator158.Name = "toolStripSeparator158"; this.toolStripSeparator158.Size = new System.Drawing.Size(149, 6); // // 图像变形ToolStripMenuItem // this.图像变形ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator159, this.waveToolStripMenuItem, this.toolStripSeparator38, this.置换ToolStripMenuItem}); this.图像变形ToolStripMenuItem.Name = "图像变形ToolStripMenuItem"; this.图像变形ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.图像变形ToolStripMenuItem.Text = "扭曲"; // // toolStripSeparator159 // this.toolStripSeparator159.Name = "toolStripSeparator159"; this.toolStripSeparator159.Size = new System.Drawing.Size(105, 6); // // waveToolStripMenuItem // this.waveToolStripMenuItem.Name = "waveToolStripMenuItem"; this.waveToolStripMenuItem.Size = new System.Drawing.Size(108, 22); this.waveToolStripMenuItem.Text = "Wave"; this.waveToolStripMenuItem.Click += new System.EventHandler(this.waveToolStripMenuItem_Click); // // toolStripSeparator38 // this.toolStripSeparator38.Name = "toolStripSeparator38"; this.toolStripSeparator38.Size = new System.Drawing.Size(105, 6); // // 置换ToolStripMenuItem // this.置换ToolStripMenuItem.Name = "置换ToolStripMenuItem"; this.置换ToolStripMenuItem.Size = new System.Drawing.Size(108, 22); this.置换ToolStripMenuItem.Text = "置换"; this.置换ToolStripMenuItem.Click += new System.EventHandler(this.置换ToolStripMenuItem_Click); // // panel2 // this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.panel2.Controls.Add(this.pictureBox1); this.panel2.Location = new System.Drawing.Point(3, 60); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(813, 494); this.panel2.TabIndex = 23; // // pictureBox1 // this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.pictureBox1.Location = new System.Drawing.Point(3, 3); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(806, 491); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 21; this.pictureBox1.TabStop = false; this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown); this.pictureBox1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseUp); // // toolStripStatusLabel1 // this.toolStripStatusLabel1.BackColor = System.Drawing.Color.Transparent; this.toolStripStatusLabel1.IsLink = true; this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; this.toolStripStatusLabel1.Size = new System.Drawing.Size(53, 17); this.toolStripStatusLabel1.Text = "MyBlog"; this.toolStripStatusLabel1.Click += new System.EventHandler(this.toolStripStatusLabel1_Click); // // toolStripStatusLabel2 // this.toolStripStatusLabel2.BackColor = System.Drawing.Color.Transparent; this.toolStripStatusLabel2.Name = "toolStripStatusLabel2"; this.toolStripStatusLabel2.Size = new System.Drawing.Size(84, 17); this.toolStripStatusLabel2.Text = "图像宽高:(0,0)"; this.toolStripStatusLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // statusStrip1 // this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripStatusLabel1, this.toolStripStatusLabel2, this.toolStripStatusLabel3}); this.statusStrip1.Location = new System.Drawing.Point(4, 557); this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Size = new System.Drawing.Size(810, 22); this.statusStrip1.TabIndex = 21; this.statusStrip1.Text = "statusStrip1"; // // toolStripStatusLabel3 // this.toolStripStatusLabel3.BackColor = System.Drawing.Color.Transparent; this.toolStripStatusLabel3.Name = "toolStripStatusLabel3"; this.toolStripStatusLabel3.Size = new System.Drawing.Size(92, 17); this.toolStripStatusLabel3.Text = "当前进度:完成"; // // 噪声ToolStripMenuItem // this.噪声ToolStripMenuItem.Name = "噪声ToolStripMenuItem"; this.噪声ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.噪声ToolStripMenuItem.Text = "噪声"; this.噪声ToolStripMenuItem.Click += new System.EventHandler(this.噪声ToolStripMenuItem_Click); // // toolStripSeparator39 // this.toolStripSeparator39.Name = "toolStripSeparator39"; this.toolStripSeparator39.Size = new System.Drawing.Size(149, 6); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Silver; this.ClientSize = new System.Drawing.Size(818, 583); this.Controls.Add(this.panel2); this.Controls.Add(this.statusStrip1); this.Controls.Add(this.label1); this.Controls.Add(this.menuStrip1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MainMenuStrip = this.menuStrip1; this.Name = "Form1"; this.Text = "ZPHOTO"; this.TitleCenter = false; this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.statusStrip1.ResumeLayout(false); this.statusStrip1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label label1; private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem 文件ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 打开ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripMenuItem 保存ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 基本变换ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 图像变换ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 图像旋转ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripMenuItem 图像缩放ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator10; private System.Windows.Forms.ToolStripMenuItem 图像翻转ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; private System.Windows.Forms.ToolStripMenuItem 图像调整ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 自动色调ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator11; private System.Windows.Forms.ToolStripMenuItem 自动对比度ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator12; private System.Windows.Forms.ToolStripMenuItem 色调均化ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator13; private System.Windows.Forms.ToolStripMenuItem 亮度对比度ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator14; private System.Windows.Forms.ToolStripMenuItem 色阶ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator15; private System.Windows.Forms.ToolStripMenuItem 色相饱和度ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator16; private System.Windows.Forms.ToolStripMenuItem 色彩平衡ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator17; private System.Windows.Forms.ToolStripMenuItem 反相ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator19; private System.Windows.Forms.ToolStripMenuItem 色调分离ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator20; private System.Windows.Forms.ToolStripMenuItem 阈值ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator21; private System.Windows.Forms.ToolStripMenuItem 去色ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator22; private System.Windows.Forms.ToolStripMenuItem 高光阴影调节ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator23; private System.Windows.Forms.ToolStripMenuItem 曝光调节ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator24; private System.Windows.Forms.ToolStripMenuItem 色温调节ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator25; private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; private System.Windows.Forms.ToolStripMenuItem 风格化ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 查找边缘ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator26; private System.Windows.Forms.ToolStripMenuItem 浮雕效果ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator27; private System.Windows.Forms.ToolStripMenuItem 扩散ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator28; private System.Windows.Forms.ToolStripMenuItem 曝光过度ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; private System.Windows.Forms.ToolStripMenuItem 图像模糊ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 表面模糊ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator29; private System.Windows.Forms.ToolStripMenuItem 动感模糊ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator30; private System.Windows.Forms.ToolStripMenuItem 均值模糊ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator31; private System.Windows.Forms.ToolStripMenuItem 高斯模糊ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator32; private System.Windows.Forms.ToolStripMenuItem 旋转模糊ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator33; private System.Windows.Forms.ToolStripMenuItem 缩放模糊ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator34; private System.Windows.Forms.ToolStripMenuItem 平均ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; private System.Windows.Forms.ToolStripMenuItem 像素化ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 马赛克ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator35; private System.Windows.Forms.ToolStripMenuItem 碎片ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator8; private System.Windows.Forms.ToolStripMenuItem 图像锐化ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem uSM锐化ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator9; private System.Windows.Forms.ToolStripMenuItem 高反差保留ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator133; private System.Windows.Forms.ToolStripMenuItem 恢复原图ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 水平翻转ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator134; private System.Windows.Forms.ToolStripMenuItem 垂直翻转ToolStripMenuItem; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2; private System.Windows.Forms.StatusStrip statusStrip1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator135; private System.Windows.Forms.ToolStripMenuItem 直方图ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 通道混合器ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; private System.Windows.Forms.ToolStripMenuItem 黑白ToolStripMenuItem1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator18; private System.Windows.Forms.ToolStripMenuItem gamma调节ToolStripMenuItem; private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3; private System.Windows.Forms.ToolStripSeparator toolStripSeparator156; private System.Windows.Forms.ToolStripMenuItem 中间色ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator155; private System.Windows.Forms.ToolStripMenuItem 最大值ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator154; private System.Windows.Forms.ToolStripMenuItem 最小值ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator157; private System.Windows.Forms.ToolStripSeparator toolStripSeparator158; private System.Windows.Forms.ToolStripMenuItem 图像变形ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator159; private System.Windows.Forms.ToolStripMenuItem waveToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator36; private System.Windows.Forms.ToolStripMenuItem 自然饱和度ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem smartBlurToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator37; private System.Windows.Forms.ToolStripMenuItem anisotropicFilterToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 置换ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator38; private System.Windows.Forms.ToolStripSeparator toolStripSeparator39; private System.Windows.Forms.ToolStripMenuItem 噪声ToolStripMenuItem; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Form1.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; using CCWin; namespace TestDemo { unsafe public partial class Form1 : CCWin.Skin_Mac { public Form1() { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); } #region V Defination //image path private String curFileName = null; //current image private Bitmap curBitmap = null; //source image private Bitmap srcBitmap = null; //zphotoengine instance private ZPhotoEngineDll zPhoto = null; //temp image for makeup public static Bitmap tempBitmap = null; private int[] faceInfos; private int faceNum = 0; private int baseLMLen = 144; private int[] landMark; #endregion #region Image open and save //打开图像函数 public void OpenFile() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "所有图像文件 | *.bmp; *.pcx; *.png; *.jpg; *.gif;" + "*.tif; *.ico; *.dxf; *.cgm; *.cdr; *.wmf; *.eps; *.emf|" + "位图( *.bmp; *.jpg; *.png;...) | *.bmp; *.pcx; *.png; *.jpg; *.gif; *.tif; *.ico|" + "矢量图( *.wmf; *.eps; *.emf;...) | *.dxf; *.cgm; *.cdr; *.wmf; *.eps; *.emf"; ofd.ShowHelp = true; ofd.Title = "打开图像文件"; if (ofd.ShowDialog() == DialogResult.OK) { curFileName = ofd.FileName; try { curBitmap = (Bitmap)System.Drawing.Image.FromFile(curFileName); if (Math.Max(curBitmap.Width, curBitmap.Height) > 1280) { srcBitmap = new Bitmap(curBitmap, 1280 * curBitmap.Width / Math.Max(curBitmap.Width, curBitmap.Height), 1280 * curBitmap.Height / Math.Max(curBitmap.Width, curBitmap.Height)); curBitmap = new Bitmap(srcBitmap); } else { srcBitmap = new Bitmap(curBitmap); } } catch (Exception exp) { MessageBox.Show(exp.Message); } } } //保存图像函数 public void SaveFile() { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "PNG文件(*.png)|*.png"; if (sfd.ShowDialog() == DialogResult.OK) { pictureBox1.Image.Save(sfd.FileName, ImageFormat.Png); } } private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) { OpenFile(); // facedetection faceInfos = new int[baseLMLen * 1 + 5]; // landMark = new int[baseLMLen]; string xmlPath = Application.StartupPath.ToString() + "\\model\\"; if (curBitmap != null) { pictureBox1.Image = (Image)curBitmap; toolStripStatusLabel2.Text = "图像宽高: (" + curBitmap.Width.ToString() + "," + curBitmap.Height.ToString() + ")"; } pictureBox1.Image = curBitmap; } private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) { if (pictureBox1.Image != null) { SaveFile(); } } private void toolStripStatusLabel1_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("https://blog.csdn.net/trent1985"); } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { if (srcBitmap != null) pictureBox1.Image = srcBitmap; } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { if (curBitmap != null) pictureBox1.Image = curBitmap; } #endregion #region Thread for image processing //Aysn image process for UI refreshing //define delegate for image process. public delegate void AysnImageProcessDelegate(int id); private bool processing = false; private void BeginImageProcess(int id) { if (processing) { MessageForm mf = new MessageForm("正在处理中,请稍候!"); { mf.ShowDialog(); } return; } this.Invoke((EventHandler)delegate { toolStripStatusLabel3.Text = "当前进度:正在处理中......"; toolStripStatusLabel3.BackColor = Color.Red; processing = true; }); AysnImageProcessDelegate sysndelegate = new AysnImageProcessDelegate(ImageProcessing); sysndelegate.BeginInvoke(id, ImageProcessDone, sysndelegate); //return sysndelegate.BeginInvoke(id, ImageProcessDone, sysndelegate); } private void ImageProcessDone(IAsyncResult result) { AysnImageProcessDelegate aysnDelegate = result.AsyncState as AysnImageProcessDelegate; if (aysnDelegate != null) { pictureBox1.Image = (Image)curBitmap; } this.Invoke((EventHandler)delegate { toolStripStatusLabel3.Text = "当前进度:完成"; toolStripStatusLabel3.BackColor = Color.Transparent; processing = false; }); } private void ImageProcessing(int id) { if (pictureBox1.Image == null) return; switch (id) { case ImageProcessId.ID_ROTATE: RotateForm rotate = new RotateForm(curFileName); if (rotate.ShowDialog() == DialogResult.OK) { int degree = rotate.getDegree; curBitmap = zPhoto.TransformRotation(curBitmap, degree, 1, 0); } break; case ImageProcessId.ID_ZOOM: ZoomForm zoom = new ZoomForm(); if (zoom.ShowDialog() == DialogResult.OK) { float scale = zoom.getScale; curBitmap = zPhoto.TransformScale(curBitmap, scale, 1, 0); } break; case ImageProcessId.ID_HMIRROR: curBitmap = zPhoto.TransformMirror(curBitmap, 4); break; case ImageProcessId.ID_VMIRROR: curBitmap = zPhoto.TransformMirror(curBitmap, 5); break; case ImageProcessId.ID_AUTO_COLORGRADATION: curBitmap = zPhoto.AutoColorGradationAdjust(curBitmap); break; case ImageProcessId.ID_AUTO_CONTRAST: curBitmap = zPhoto.AutoContrastAdjust(curBitmap); break; case ImageProcessId.ID_HISTAGRAMEQUALIZE: curBitmap = zPhoto.HistagramEqualize(curBitmap); break; case ImageProcessId.ID_BRIGHTCONTRAST: BrightContrastForm bc = new BrightContrastForm(curFileName); if (bc.ShowDialog() == DialogResult.OK) { int bright = bc.getBright; int contrast = bc.getContrast; if (bc.getVersion) { curBitmap = zPhoto.NLinearBrightContrastAdjust(curBitmap, bright, contrast, 128); } else { curBitmap = zPhoto.LinearBrightContrastAdjust(curBitmap, bright, contrast, 128); } } break; case ImageProcessId.ID_COLORLEVEL: LevelForm form = new LevelForm(curFileName); if (form.ShowDialog() == DialogResult.OK) { int lInput = form.getLeftInput; double mInput = form.getMidInput; int rInput = form.getRightInput; int lOutput = form.getLeftOutput; int rOutput = form.getRightOutput; int channel = form.getChannel; curBitmap = zPhoto.ColorLevelProcess(curBitmap, channel, lInput, (float)mInput, rInput, lOutput, rOutput); } break; case ImageProcessId.ID_HSL: HSLForm hsl = new HSLForm(curFileName); if (hsl.ShowDialog() == DialogResult.OK) { int h = hsl.getHue; int s = hsl.getSaturation; int l = hsl.getLightness; curBitmap = zPhoto.HueSaturationAdjust(curBitmap, h, s); curBitmap = zPhoto.LightnessAdjustProcess(curBitmap, l); } break; case ImageProcessId.ID_COLORBALANCE: ColorbalanceForm corB = new ColorbalanceForm(curFileName); if (corB.ShowDialog() == DialogResult.OK) { int cyan = corB.getCyan; int magenta = corB.getMagenta; int yellow = corB.getYellow; curBitmap = zPhoto.ColorBalanceProcess(curBitmap, cyan, magenta, yellow, 0, corB.getLum); } break; case ImageProcessId.ID_INVERT: curBitmap = zPhoto.Invert(curBitmap); break; case ImageProcessId.ID_POSTERIZE: PosterizeForm poster = new PosterizeForm(curFileName); if (poster.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.Posterize(curBitmap, poster.getLevelNum); } break; case ImageProcessId.ID_THRESHOLD: ThresholdForm threForm = new ThresholdForm(curFileName); if (threForm.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.Threshold(curBitmap, threForm.getThresold); } break; case ImageProcessId.ID_DESATURATE: curBitmap = zPhoto.Desaturate(curBitmap); break; case ImageProcessId.ID_HIGHLIGHTSHADOW: HighlightShadowForm hsform = new HighlightShadowForm(curFileName); if (hsform.ShowDialog() == DialogResult.OK) { int shadow = hsform.getShadow; int highlight = hsform.getHighlight; curBitmap = zPhoto.HighlightShadowPreciseAdjustProcess(curBitmap, highlight, shadow); //Bitmap tmp = zPhoto.ShadowAdjust(curBitmap, shadow, 100); //curBitmap = zPhoto.HighlightAdjust(tmp, highlight, 100); } break; case ImageProcessId.ID_EXPOSURE: ExposureForm eform = new ExposureForm(curFileName); if (eform.ShowDialog() == DialogResult.OK) { int intensity = eform.getIntensity; curBitmap = zPhoto.ExposureAdjust(curBitmap, intensity); } break; case ImageProcessId.ID_COLORTEMPEATURE: TempreatureForm teform = new TempreatureForm(curFileName); if (teform.ShowDialog() == DialogResult.OK) { int intensity = teform.getTempeature; curBitmap = zPhoto.ColorTemperatureProcess(curBitmap, intensity); } break; case ImageProcessId.ID_FINDEDGES: curBitmap = zPhoto.FindEdgesProcess(curBitmap); break; case ImageProcessId.ID_RELIEF: ReliefForm rform = new ReliefForm(curFileName); if (rform.ShowDialog() == DialogResult.OK) { int angle = rform.getAngle; int amount = rform.getAmount; curBitmap = zPhoto.Relief(curBitmap, angle, amount); } break; case ImageProcessId.ID_DIFUSSION: DifussionForm dform = new DifussionForm(curFileName); if (dform.ShowDialog() == DialogResult.OK) { int intensity = dform.getIntensity; curBitmap = zPhoto.DiffusionProcess(curBitmap, intensity); } break; case ImageProcessId.ID_OVEREXPOSURE: curBitmap = zPhoto.OverExposure(curBitmap); break; case ImageProcessId.ID_SURFACEBLUR: SurfaceBlurForm srform = new SurfaceBlurForm(curFileName); if (srform.ShowDialog() == DialogResult.OK) { int radius = srform.getRadius; int threshold = srform.getThreshld; curBitmap = zPhoto.SurfaceBlur(curBitmap, threshold, radius); } break; case ImageProcessId.ID_MOTIONBLUR: MotionBlurForm moform = new MotionBlurForm(curFileName); if (moform.ShowDialog() == DialogResult.OK) { int angle = moform.getAngle; int distance = moform.getDistance; curBitmap = zPhoto.MotionBlur(curBitmap, angle, distance); } break; case ImageProcessId.ID_MEANBLUR: MeanBlurForm meform = new MeanBlurForm(curFileName); if (meform.ShowDialog() == DialogResult.OK) { int radius = meform.getRadius; curBitmap = zPhoto.MeanFilterProcess(curBitmap, radius); } break; case ImageProcessId.ID_GAUSSBLUR: GaussBlurForm gauform = new GaussBlurForm(curFileName); if (gauform.ShowDialog() == DialogResult.OK) { double radius = gauform.getRadius; curBitmap = zPhoto.GaussFilterProcess(curBitmap, (float)radius); } break; case ImageProcessId.ID_RADIAL: RadialBlurForm raform = new RadialBlurForm(curFileName); if (raform.ShowDialog() == DialogResult.OK) { int amount = raform.getAmount; curBitmap = zPhoto.RadialBlurProcess(curBitmap, amount); } break; case ImageProcessId.ID_ZOOMBLUR: ZoomBlurForm zoomform = new ZoomBlurForm(curFileName); if (zoomform.ShowDialog() == DialogResult.OK) { int amount = zoomform.getAmount; int radius = zoomform.getRadius; curBitmap = zPhoto.ZoomBlurProcess(curBitmap, radius, amount); } break; case ImageProcessId.ID_MEAN: curBitmap = zPhoto.MeanProcess(curBitmap); break; case ImageProcessId.ID_MOSCIA: MosciaForm mosciaform = new MosciaForm(curFileName); if (mosciaform.ShowDialog() == DialogResult.OK) { int blockSize = mosciaform.getBlocksize; curBitmap = zPhoto.MosaicProcess(curBitmap, blockSize); } break; case ImageProcessId.ID_FRAGMENT: curBitmap = zPhoto.Fragment(curBitmap); break; case ImageProcessId.ID_HIGHPASS: HighpassForm hpform = new HighpassForm(curFileName); if (hpform.ShowDialog() == DialogResult.OK) { double radius = hpform.getRadius; curBitmap = zPhoto.HighPassProcess(curBitmap, (float)radius); } break; case ImageProcessId.ID_USM: USMForm usmform = new USMForm(curFileName); if (usmform.ShowDialog() == DialogResult.OK) { double radius = usmform.getRadius; int amount = usmform.getAmount; int threshold = usmform.getThreshold; curBitmap = zPhoto.USMProcess(curBitmap, (float)radius, amount, threshold); } break; case ImageProcessId.ID_CHANNELMIXER: ChannelMixForm cmform = new ChannelMixForm(curFileName); if (cmform.ShowDialog() == DialogResult.OK) { curBitmap = new Bitmap(cmform.getResImage); } break; case ImageProcessId.ID_BLACKWHITE: BlackWhiteForm whform = new BlackWhiteForm(curFileName); if (whform.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.BlackwhiteProcess(curBitmap, whform.getKRed, whform.getKGreen, whform.getKBlue, whform.getKYellow, whform.getKCyan, whform.getKMagenta); } break; case ImageProcessId.ID_GAMMA: GammaForm gammaForm = new GammaForm(curFileName); if (gammaForm.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.GammaCorrectProcess(curBitmap, gammaForm.getGamma); } break; case ImageProcessId.ID_MEDIANFILTER: MedianForm medianForm = new MedianForm(curFileName); if (medianForm.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.MedianFilterProcess(curBitmap, medianForm.getRadius); } break; case ImageProcessId.ID_MAXFILTER: MaxForm maxForm = new MaxForm(curFileName); if (maxForm.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.MaxFilterProcess(curBitmap, maxForm.getRadius); } break; case ImageProcessId.ID_MINFILTER: MinForm minForm = new MinForm(curFileName); if (minForm.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.MinFilterProcess(curBitmap, minForm.getRadius); } break; case ImageProcessId.ID_NATURALSATURATION: NSaturationForm nsatForm = new NSaturationForm(curFileName); if (nsatForm.ShowDialog() == DialogResult.OK) { curBitmap = zPhoto.NaturalSaturationProcess(curBitmap, nsatForm.getSaturation); } break; case ImageProcessId.ID_IMAGEWARP_WAVE: curBitmap = zPhoto.ImageWarpWaveProcess(curBitmap, 60); ///////////////////////////////////////////////////////// break; case ImageProcessId.ID_SMARTBLUR: SmartBlurForm sbform = new SmartBlurForm(curFileName); if (sbform.ShowDialog() == DialogResult.OK) { int radius = sbform.getRadius; int threshold = sbform.getThreshld; curBitmap = zPhoto.SmartBlurProcess(curBitmap, radius, threshold); } break; case ImageProcessId.ID_DISPLACEMENTFILTER: DisplacementFrom displacementform = new DisplacementFrom(); if (displacementform.ShowDialog() == DialogResult.OK) { string mskPath = displacementform.getMaskPath; int hRatio = displacementform.getHRatio; int vRatio = displacementform.getVRatio; try { curBitmap = zPhoto.DisplacementFilter(curBitmap, new Bitmap(mskPath), hRatio, vRatio); } catch (Exception exp) { MessageBox.Show("Please check input params!"); } } break; case ImageProcessId.ID_NOISEEFFECT: curBitmap = zPhoto.NoiseEffect(curBitmap, 100, 0.5f, 50.0f); break; default: break; } } #endregion #region UI response private void 图像旋转ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_ROTATE); } private void 恢复原图ToolStripMenuItem_Click(object sender, EventArgs e) { if (curFileName != null) { curBitmap = new Bitmap(curFileName); pictureBox1.Image = (Image)curBitmap; } } private void 图像缩放ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_ZOOM); } private void 水平翻转ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_HMIRROR); } private void 垂直翻转ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_VMIRROR); } private void 自动色调ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_AUTO_COLORGRADATION); } private void 自动对比度ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_AUTO_CONTRAST); } private void 色调均化ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_HISTAGRAMEQUALIZE); } private void 亮度对比度ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_BRIGHTCONTRAST); } private void 色阶ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_COLORLEVEL); } private void 色相饱和度ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_HSL); } private void 色彩平衡ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_COLORBALANCE); } private void 反相ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_INVERT); } private void 色调分离ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_POSTERIZE); } private void 阈值ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_THRESHOLD); } private void 去色ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_DESATURATE); } private void 高光阴影调节ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_HIGHLIGHTSHADOW); } private void 曝光调节ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_EXPOSURE); } private void 色温调节ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_COLORTEMPEATURE); } private void 查找边缘ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_FINDEDGES); } private void 浮雕效果ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_RELIEF); } private void 扩散ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_DIFUSSION); } private void 曝光过度ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_OVEREXPOSURE); } private void 表面模糊ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_SURFACEBLUR); } private void 动感模糊ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_MOTIONBLUR); } private void 均值模糊ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_MEANBLUR); } private void 高斯模糊ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_GAUSSBLUR); } private void 旋转模糊ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_RADIAL); } private void 缩放模糊ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_ZOOMBLUR); } private void 平均ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_MEAN); } private void 马赛克ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_MOSCIA); } private void 碎片ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_FRAGMENT); } private void 高反差保留ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_HIGHPASS); } private void uSM锐化ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_USM); } private void 通道混合器ToolStripMenuItem_Click_1(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_CHANNELMIXER); } private void 黑白ToolStripMenuItem1_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_BLACKWHITE); } private void 直方图ToolStripMenuItem_Click(object sender, EventArgs e) { if (pictureBox1.Image != null) { HistagramForm form = new HistagramForm(curFileName); form.Show(); } } private void gamma调节ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_GAMMA); } private void 中间色ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_MEDIANFILTER); } private void 最大值ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_MAXFILTER); } private void 最小值ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_MINFILTER); } private void waveToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_IMAGEWARP_WAVE); } private void 自然饱和度ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_NATURALSATURATION); } private void smartBlurToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_SMARTBLUR); } #endregion private void anisotropicFilterToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_ANISOTROPICFILTER); } private void 置换ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_DISPLACEMENTFILTER); } private void 噪声ToolStripMenuItem_Click(object sender, EventArgs e) { BeginImageProcess(ImageProcessId.ID_NOISEEFFECT); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Form1.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 17, 17 137, 17 25 AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMt54wjLeOIKynjiCsp44grKeOIKy3jiCst4 4grKeOMKynjjCst44grLeOEKy3jiCst44grLeeIKy3riCst64grLeuMKy3rjCst64wrLeuMKy3rjCst6 4grLeuIKy3riCst64QrLeuIKy3rhCst64grLeuMKy3rhCst64QrLeuEKy3riCst64grLeuIKy3rhCst6 4grLeuIKy3rhCst64grLeuMKy3riCst64QrLeuIKy3riCst64QrLeuEKy3rhCst64grLeuMKy3rjCst6 4grLeuIKy3riCst64QrLeuIKy3rjCst64grLeuEKy3riCst74wrLe+MKy3vjCst74wrLe+MKy3vjCst7 4wrLe+MKy3vjCst74wrLe+MKy3vjCst74wrLe+MKy3vjCst74wrLe+MKy3vjCst74wrLe+MKy3vjCst7 4wrLe+MKy3vjCst74wrLe+MKy3vjCst74wrLe+MKy3vjCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMt6 4gjLeuJmynni4ct54v/KeeL/ynni/8p54v/LeeL/y3ni/8p54v/KeeL/y3ni/8t54v/LeeL/y3ni/8t5 4v/LeuL/y3ri/8t64//LeuP/y3rj/8t64//LeuP/y3ri/8t64v/LeuL/y3ri/8t64v/LeuL/y3ri/8t6 4//LeuL/y3ri/8t64v/LeuL/y3ri/8t64v/LeuL/y3ri/8t64v/LeuL/y3ri/8t64//LeuL/y3ri/8t6 4v/LeuL/y3ri/8t64v/LeuL/y3ri/8t64//LeuP/y3ri/8t64v/LeuL/y3ri/8t64v/LeuP/y3ri/8t6 4v/LeuL/y3vj/8t74//Le+P/y3vj/8t74//Le+P/y3vj/8t74//Le+P/y3vj/8t74//Le+P/y3vj/8t7 4//Le+P/y3vj/8t74//Le+P/y3vj/8t74//Le+P/y3vj/8t74v/Le+L/y3vj/8t74//Le+P/y3vi/8t7 4v/Le+LhzHziZsx84ggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLe+Nay3vix8t64v/LeuL/y3rj/8t64v/LeuL/y3ri/8t6 4v/LeuL/y3ri/8t64v/LeuL/y3ri/8t64v/LeuL/y3ri/8t64v/LeuL/y3vj/8t74v/Le+L/y3vj/8t7 4//Le+P/y3vj/8t74v/Le+L/y3vj/8t74//Le+L/y3vi/8t74v/Le+L/y3vi/8t74v/Le+L/y3vi/8t7 4v/Le+L/y3vi/8t74v/Le+L/y3vi/8t74v/Le+P/y3vj/8t74//Le+L/y3vi/8t74v/Le+L/y3vj/8t7 4v/Le+L/y3vi/8t74//Le+P/y3vj/8t74//Le+L/y3vi/8t74v/Le+L/y3vi/8t84v/LfOL/y3zi/8x8 4v/LfOL/y3zi/8t84v/LfOL/y3zi/8t84v/LfOL/y3zj/8x84//LfOL/y3zi/8t84v/LfOL/y3zi/8t8 4v/MfOL/y3zi/8t84v/LfOP/y3zj/8t84//LfOL/y3zi/8t84v/LfOL/zH3ix8x941oAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzH3iTsx8 4v/LfOL/y3zj/8t84v/LfOL/y3zi/8t84v/LfOL/y3zi/8t84v/LfOL/y3zj/8x84v/LfOL/y3zi/8x8 4v/LfOL/y3zi/8t84v/LfOL/y3zi/8t84v/LfOL/y3zi/8t84v/LfeL/y33i/8t94v/LfeP/y33j/8t9 4v/MfeL/y33i/8t94v/LfeL/zH3i/8t94v/LfeL/zH3j/8x94v/LfeL/y33i/8x94v/LfeL/y33i/8t9 4//LfeP/zH3j/8t94v/LfeL/y33i/8t94v/MfeP/y33i/8t94v/LfeL/zH3j/8t94//LfeP/y33j/8t9 4v/LfeL/y33i/8t94//LfeL/y33i/8x94v/MfeL/zH3i/8t94v/MfeP/zH3j/8x94//MfuP/zH3j/8x9 4//MfeP/zH7j/8x94//MfeP/zH3j/8x94//MfeP/zH7j/8x+4//MfeP/zH7j/8x94//MfeP/zH7j/8x9 4//MfuP/zH3j/8x94//MfuP/zH3j/8x+4k4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAzH7jHMx948nMfePxzH3i/8t94v/LfeP/y33i/8x94v/MfeL/zH3i/8t9 4v/LfeL/y33i/8t94v/LfuP/zH3i/8t94v/LfeL/zH3i/8t94v/LfeL/y33i/8t94v/LfeL/y33i/8t9 4v/LfeL/y33i/8x94v/LfeP/y37j/8x+4//MfuP/zH7j/8x/4//MfuL/zH7j/8x+4//MfuP/zH7j/8x+ 4v/MfuP/zH7j/8x+4//MfuP/zH7i/8x+4v/MfuL/zH7i/8x+4//MfuP/zH7i/8x+4v/MfuL/zH7j/8x+ 4//MfuP/zH7j/8x+4//MfuL/zH7i/8x+4v/MfuP/zH7i/8x+4//MfuL/zH7j/8x+4v/MfuL/zH7i/8x+ 4v/MfuP/zH7j/8x+4v/MfuL/zH7i/8x/4v/Mf+L/zH/i/8x/4//Mf+P/zH/j/8x/4//Mf+P/zH/i/8x/ 4v/Mf+L/zH/j/8x/4v/Mf+P/zH/j/8x/4v/Mf+L/zH/i/8x/4//Mf+L/zH/i/8x/4//Mf+L/zH/i8cx/ 4snMgOMcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMx/4xzMfuPNzH/i/8x+ 4v/Mf+L/zH7j/8x+4//Mf+L/zH/i/8x/4//Mf+P/zH7j/8x+4//MfuP/zH/i/8x/4//MfuP/zH7j/8x+ 4//MfuP/zH7i/8x+4v/MfuL/zH7i/8x/4//Mf+P/zH/j/8x+4//Mf+L/zH7i/8x/4v/MfuP/zH/i/8x/ 4//Mf+P/zH/j/8x/4v/Mf+P/zIDj/8yA4//Mf+P/zH/i/82A4//Mf+P/zIDj/8x/4//MgOL/zIDi/8yA 4v/Mf+L/zIDj/8yA4//MgOL/zH/i/81/4v/MgOP/zH/j/8x/4//Mf+P/zH/j/8yA4v/Mf+L/zH/i/8x/ 4//MgOL/zIDj/8yA4v/MgOP/zH/i/8x/4v/Mf+L/zH/i/8yA4//Mf+P/zH/i/8x/4v/MgOL/zH/i/8x/ 4v/MgOL/zIDj/8yA4//MgeP/zYDj/8yA4//MgOP/zIDj/8yA4//MgOP/zIDj/8yB4//MgeP/zIDj/8yA 4//MgOP/zIDj/8yA4//MgOP/zIDj/8yA4//MgeP/zIDj/8yA483NgeMcAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAzIDjYMyA4//MgOL/zIDi/8yA4v/MgOP/zIDj/8yA4v/MgOL/zIDj/8yA 4//MgOP/zIDj/8yA4//MgOL/zIDj/8yA4//MgOP/zIDj/8yA4//MgOL/zIDi/8yA4v/MgOL/zIDj/8yA 4//MgOP/zIDj/8yA4v/MgOL/zIDi/8yA4//MgOL/zIDj/8yA4//MgOP/zIDj/8yA4//MgOP/zIDj/8yA 4//MgeP/zYHj/8yB4//MgeP/zIHj/8yB4//MgeP/zIHj/8yB4//MgeP/zIHj/8yB4//MgeP/zYHj/8yB 4//MgeP/zIHj/8yB4//MgeP/zIHj/8yB4//MgeP/zYHj/8yB4//MgeP/zIHj/8yB4//MgeP/zIHj/8yB 4//MgeP/zIHj/8yB4//MgeP/zIHj/8yB4//MgeP/zIHj/8yB4//MgeP/zIHj/8yB4//NgeP/zYHj/82B 4//NgeP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C 4//NguP/zYLj/82C42AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM2C4k7NgePxzYHj/82B 4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NgeP/zYHj/82B 4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NgeP/zYHj/82B 4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NgeP/zYHj/82B4//NguP/zYLj/82C4//NguP/zYLj/82C 4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C 4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C 4//NguP/zYLj/82C4//NguP/zYLj/82C4//NguP/zYLj/82C4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D 4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj8c2E4k4AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADMguMezYLj/82C4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D 4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D 4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D4//Ng+P/zYPj/82D 4//Ng+P/zYPj/82D4//Ng+P/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E 4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E 4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E 4//NhOP/zYTj/82E4//NhOP/zYTj/86F4//NheP/zYXj/86F4//OheP/zoXj/86F4//OheP/zoXj/86F 4//OheP/zYXj/86F4//NheP/zYXj/82F4x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM2E45XNg+P/zYPj/82E 4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E 4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E 4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82E4//NhOP/zYTj/82F 4//OheP/zYXj/82F4//NheP/zYXj/82F4//NheP/zoXj/82F4//NheP/zYXj/82F4//NheP/zYXj/82F 4//NheP/zoXj/82F4//OheP/zYXj/82F4//NheP/zYXj/86F4//NheP/zYXj/82F4//NheP/zYXj/82F 4//NheP/zYXj/82F4//NheP/zYXj/82F4//NheP/zoXj/82F4//NheP/zYXj/86F4//OheP/zoXj/86F 4//NheP/zYbj/82G4//OhuP/zobj/86G4//OhuP/zobj/86G4//NhuP/zobj/86G4//NhuP/zYbjlQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADNheMszYXi3c6F4//OheP/zoXj/82F4//NheP/zoXj/82F4//NheP/zYXj/82F 4//NhuP/zYbj/82G4//OhuP/zYbj/82F4//NhuP/zYXj/82G4//NhuP/zobj/86G4//OhuP/zYbj/82F 4//OhuP/zobj/82G4//NhuP/zobj/86F4//OheP/zoXj/86G4//OhuP/zobj/86G4//OhuP/zYXj/82G 4//NhuP/zYbj/86G4//OhuP/zobj/86G4//OhuP/zobj/86G4//OhuP/zobj/82G4//NheP/zofj/86G 4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86G4//Oh+P/zofj/86H 4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zobj/86G4//OhuP/zofj/86G4//Oh+P/zofj/86G 4//Oh+P/zofj/86H4//Oh+P/zofj/86G4//Oh+P/zofj/86H4//Oh+P/zobj/86H4//Oh+P/zofj/86H 4//Oh+P/zojj/86I4//OiOP/zojj/86I4//OiOLdzonjLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM6G42bNhuP/zobj/86G 4//OhuP/zobj/86G4//OhuP/zYbj/82G4//OhuP/zYbj/82G4//Oh+P/zofj/86H4//Oh+P/zofj/86H 4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86H 4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86H 4//Oh+P/zofj/86H4//Oh+P/zofj/86H4//Oh+P/zofj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I 4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I 4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I 4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zonj/86J4//OiOP/zonj/86J 4//OieNmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAzojjZs6I4//OiOP/zojj/86I4//OiOP/zojj/86I4//Oh+P/zofj/86I 4//OiOP/zojj/86I4//OiOP/zojj/86I4//OiOP/zonj/86I4//OiOP/zojj/86J4//PieP/zonj/86J 4//OieP/zojj/86I4//OieP/zonj/86J4//OieP/zonj/86J4//OiOP/zojj/86J4//OieP/zonj/86J 4//OieP/zojj/86I4//OieP/zojj/86I4//OieP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/86I 4//OiOP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/86J 4//OieP/zonj/86J4//OieP/zonj/86J4//PieP/zonj/86J4//OieP/zonj/8+J4//PieP/zonj/86J 4//OieP/zonj/86J4//OieP/z4nj/8+J4//OieP/zonj/86J4//PieP/zonj/86J4//OieP/zonj/86J 4//OieP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/8+K42YAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOieNmzonj/86J 4//OieP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/86J4//OieP/zonj/86J 4//OieP/zonj/86J4//OieP/zonj/8+J4//OieP/zonj/86K4//OiuP/zorj/86K4//OiuP/zorj/86K 4//OiuP/zorj/86K4//OiuP/zorj/86K4//PiuP/zorj/86K4//PiuP/zorj/86K4//OiuP/zorj/86K 4//OiuP/zorj/86K4//OiuP/zorj/86K4//OiuP/zorj/8+K4//PiuP/z4rj/86K4//OiuP/zorj/86K 4//OiuP/zorj/86K4//PiuP/z4rj/8+K4//PiuP/z4rj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L 4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L 4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L 4//Pi+P/z4vjZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+K42bPiuP/z4rj/8+K4//PiuP/z4rj/8+K4//PiuP/z4rj/8+K 4//PiuP/z4rj/8+K4//PiuP/z4rj/8+K4//PiuP/z4rj/8+K4//PiuP/z4rj/8+K4//PiuP/z4rj/8+K 4//PiuP/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L 4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L 4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L4//Pi+P/z4vj/8+L 4//Pi+P/z4zj/8+M4//PjOP/z4zj/8+M5P/PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M 4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M 4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjONmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz4zjZs+M 4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M 4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z4zj/8+M4//PjOP/z43j/8+N 4//PjeP/z43j/8+N5P/PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeT/z43j/8+N5P/PjeP/z43j/8+N 4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeP/z43j/8+N 4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeP/z43k/8+O 4//PjuP/z47j/8+O4//PjuP/z47j/8+O4//PjuP/0I7j/8+O4//PjuP/z47j/8+O4//PjuP/z47j/8+O 4//PjuP/z47j/8+O4//PjuP/z47j/8+O4//PjuP/z47j/8+O4//PjuP/z47j/8+O4//PjuP/z47j/8+O 4//PjuP/z47j/8+O42YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPjeRmz43j/8+N4//PjeP/z43k/8+N4//PjeP/z43j/8+N 5P/PjeP/z43j/8+N4//PjeP/z43k/8+N4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjeP/z43j/8+N 4//PjeP/z43j/8+N4//PjeP/z43j/8+N4//PjuP/0I7k/8+O5P/PjuT/z47k/9CO4//QjuT/0I7k/9CO 5P/QjuT/0I7k/9CO5P/QjuT/0I7k/9CO5P/QjuT/0I7k/9CO5P/QjuT/0I7k/9CO5P/QjuT/0I7k/9CO 5P/QjuT/0I7k/9CO5P/QjuT/0I7j/9CO4//QjuT/0I7k/8+O5P/PjuP/0I7j/9CO5P/QjuT/0I7k/9CO 5P/QjuT/0I7k/9CO4//QjuP/0I7j/9CO4//QjuT/0I/k/9CP5P/Qj+T/0I/k/9CP5P/Qj+T/0I/k/9CP 5P/Qj+T/0I/k/9CP5P/Qj+T/0I/j/9CP4//Qj+P/0I/j/8+P5P/Pj+T/0I/k/9CP5P/Qj+T/0I/k/9CP 5P/Qj+T/0I/k/9CP5P/Pj+T/0I/j/9CP4//Qj+T/z4/j/9CP4//Qj+T/0I/kZgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCP 5GbQj+T/z4/k/8+P5P/Qj+T/0I/k/9CP5P/Qj+T/0I/k/9CP5P/Qj+T/0I/j/9CP4//Qj+T/0I/k/9CP 5P/Qj+T/0I/k/8+P5P/Pj+P/0I/j/9CP5P/Qj+T/0I/k/9CP5P/Qj+T/z4/k/8+P5P/Qj+P/0I/j/9CP 4//Qj+T/z4/k/8+P5P/Pj+T/0I/j/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ 5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ 5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ 5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JHk/9CQ5P/QkOT/0JDk/9CQ 5P/QkeT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ 5P/QkOT/0JDk/9CQ5P/QkeRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0JDkZtCQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ 5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ 5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ5P/QkOT/0JDk/9CQ 5P/QkOT/0JDk/9CQ5P/QkOT/0JHk/9CR5P/QkeT/0JHk/9CR5P/QkOT/0JHk/9CR4//QkeP/0JDj/9CR 4//QkOP/0JHj/9CQ4//QkeP/0JDj/8+R4//QkOP/0JDj/9CR5P/QkeT/0JDk/9CR5P/QkOT/0JHk/9CR 5P/QkeT/0JHk/9CQ5P/QkeT/0JHk/9CR5P/QkeT/0JHk/9CR5P/QkeT/0JDk/9CR5P/QkeT/0JHk/9CR 5P/QkeT/0JHk/9CR5P/QkeT/0JHk/9CS5P/QkeT/0JLk/9CS5P/QkuT/0JHk/9CS5P/RkuT/0JLk/9CS 5P/QkuT/0JLk/9CS5P/QkuT/0ZLk/9CS5P/QkuT/0JLk/9CS5P/QkuT/0JHk/9CS5GYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADQkeRm0JHk/9GR5P/QkeT/0JHk/9CS5P/RkeT/0JLk/9CR5P/RkeT/0ZHk/9CR5P/QkeT/0JHk/9CR 5P/QkuT/0JHk/9CR5P/QkeT/0JHk/9CR5P/QkeT/0JHk/9CR5P/QkeT/0ZHk/9GR5P/QkeT/0JLk/9CR 5P/RkeT/0JHk/9CS5P/QkeT/0JHk/9CR5P/RkeT/0JHk/9CS5P/QkeT/0JLk/9CR5P/QkeT/0JHk/9CS 5P/QkuT/0JHj/9CS4//PkuL/zpHh/82Q4P/Mj9//y4/d/8qO3f/Kjdz/yo3c/8qO3P/Lj93/y4/e/8yQ 4P/OkeH/z5Li/9CS4//QkuP/0ZPk/9GS5P/Rk+T/0JLk/9GS5P/QkuT/0JLk/9CS5P/Qk+T/0ZLk/9GT 5P/RkuT/0ZLk/9GS5P/QkuT/0ZLk/9CS5P/QkuT/0JLk/9CT5P/Rk+T/0ZLk/9CS5P/RkuT/0JPk/9GS 5P/Rk+T/0ZTk/9GT5P/Rk+T/0ZPk/9GT5P/RlOT/0ZPk/9GT5P/Rk+T/0ZPk/9GU5P/RlOT/0ZTk/9GT 5P/Rk+T/0ZPk/9GU5P/Rk+T/0ZPkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCS5GbQkuT/0ZLk/9CS5P/Qk+T/0JPk/9GS 5P/Qk+T/0JPk/9GT5P/Rk+T/0JPk/9CT5P/Qk+T/0JPk/9CT5P/Qk+T/0JPk/9CT5P/Qk+T/0JPk/9CT 5P/Rk+T/0JPk/9CT5P/Rk+T/0ZPk/9GT5P/Qk+T/0JPk/9GT5P/Rk+T/0JPk/9CT5P/Rk+T/0ZPk/9GT 5P/Rk+T/0ZPk/9CT5P/Qk+T/0JPj/9CS4//PkuP/zpHh/82Q3//Jjtz/xozZ/8KJ1P+/htD/u4TM/7iC yf+1gMX/s3/E/7J+w/+yfsP/s3/E/7WAxf+3gsj/u4TM/7+H0P/CitT/xozY/8mP3P/Mkd//zpLh/9CT 4v/Qk+P/0ZPj/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU 5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU 5P/RlOT/0ZXk/9GV5P/RleT/0ZXk/9GV5P/RleT/0ZXk/9GV5P/RleT/0ZXk/9GV5P/RleRmAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA0ZPkZtGT5P/Rk+T/0ZPk/9GT5P/Rk+T/0ZPk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU 5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU 5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9GU5P/RlOT/0ZTk/9CU4//Pk+L/zZHf/8mP 2//Di9X/vYbO/7WAxf+ue77/pnW0/59xrf+YbKb/k2ih/5BmnP+MZJn/i2OY/4tjmP+NZJn/kGac/5Np oP+YbKX/n3Gt/6R2tP+te73/tIDE/7yGzf/Di9T/yY/b/82S3//PlOH/0ZXj/9GV5P/RleT/0ZXk/9GV 5P/RleT/0ZXk/9GV5P/RleT/0pXk/9GV5P/RleT/0ZXk/9GV5P/RleT/0pXk/9GV5P/SleT/0ZXk/9GV 5P/RleT/0ZXk/9GV5P/RleT/0ZXk/9KV5P/RleT/0ZXk/9GV5P/SluT/0pbk/9KW5P/SluT/0pbl/9KW 5f/SluT/0pbk/9KW5P/SluT/0pbk/9KW5GYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRleRm0ZXk/9GV5P/RleT/0ZXk/9GV 5P/RleT/0ZXk/9GV5P/RleT/0ZXk/9GV5P/RleT/0ZXk/9GV5P/RleT/0pXk/9GV5P/RluT/0Zbk/9GW 5P/RluT/0Zbk/9GW5P/RluT/0Zbk/9GW5P/RluT/0Zbk/9GW5P/RluT/0Zbk/9GW5P/RluT/0Zbk/9GW 5P/RluT/0Zbk/9GV4//Pk+H/y5Hd/8SM1v+8hsz/sX7B/6V2tP+Zbaf/i2KW/4BZh/90T3X/aEZl/2NB WP9gPU//XTlI/1s3Q/9bN0P/WzdD/1s3Q/9cOEf/XzxO/2I/V/9nRWL/cU5z/39ahv+JYpT/l22k/6N1 sf+vfr//uobK/8OM1P/Kkdz/zpTh/9CW4v/RluT/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX 5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX 5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfkZgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANKW5GbSluT/0pbk/9KW5P/SluX/0pbk/9KW5P/SluT/0pbk/9KW5P/SluT/0pbk/9KW 5P/SluT/0pbk/9KW5P/SluT/0pbk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+X/0pfk/9KX 5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9KX5P/Sl+T/0pfk/9GX5P/QleL/zJPe/8SN1v+6hsv/q3u7/5xx q/+MZZn/eVWA/2pHZf9YNkT/VzM4/1QvLP9NKCL/SyYe/0okHf9JIxz/SCMb/0giG/9IIhv/SCIb/0kj G/9JIxz/SSQd/0omIP9RLCn/VjI1/1c0Qf9nRGD/d1N9/4pklv+acKj/qXq5/7iGyf/DjdT/y5Pd/8+W 4f/Rl+T/0Zjk/9KY5P/SmOT/0pjk/9KY5f/SmOX/0pjl/9KY5f/SmOX/0pjl/9KY5f/SmOX/0pjl/9KY 5P/SmOT/0pjl/9KY5P/SmOT/0pjk/9KY5P/SmOT/0pjk/9KY5P/SmOT/0pjk/9KY5P/SmOX/0pjk/9KY 5P/SmOX/0pjk/9KY5f/SmOT/0pjk/9KY5f/SmOVmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0pjlZtKY5f/SmOX/0pjk/9KY 5P/SmOX/0pjl/9KY5P/SmOT/0pjl/9KY5f/SmOX/0pjk/9KY5f/SmOX/0pjk/9KY5P/SmOX/0pjk/9KY 5P/SmOT/0pjk/9KY5f/SmOT/0pjl/9KY5f/SmeX/0pnl/9KZ5f/SmeX/0pjl/9KY5f/SmOT/0pnk/9GZ 5P/Ql+L/zJTd/8ON1P+3hcj/pHez/5Jqn/97WIH/ZkRe/1g1Pf9PKiX/UCkg/0wlHv9IIRv/RR8Z/0Qe Gf9EHhn/RB4Y/0MdGP9DHRj/Qx0Y/0MdGP9CHBj/QhwY/0IcF/9CHBf/QhwX/0IcF/9EHhj/SCIb/0wm Hv9LJyL/VTI5/2JBWf94VXz/kGic/6J2sP+1hMX/wo7T/8uU3f/Ql+L/0pnk/9Ka5P/TmuX/05rl/9Ka 5f/SmuX/0prl/9Ka5f/TmuX/05rl/9Ka5f/SmeX/0prl/9KZ5f/TmeX/05rl/9Ka5f/SmuX/0prl/9Oa 5f/TmuX/05rl/9Oa5f/TmuX/0pnl/9Oa5f/SmuX/0prl/9OZ5f/SmuX/0prl/9KZ5f/TmuX/0pnl/9Ka 5WYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADSmeVm0pnl/9KZ5f/SmeT/0pnk/9KZ5f/SmeX/0pnk/9KZ5P/SmeX/0pnl/9KZ 5f/SmeT/0pnl/9KZ5f/SmeT/0pnk/9KZ5f/SmeT/0pnk/9KZ5P/SmeT/0pnl/9KZ5P/SmeX/0pjl/9KZ 5f/TmuX/0prl/9Ka5f/SmuX/0prl/9Ka5P/SmeT/z5fg/8iS2f+9is3/qn25/5dvo/97WIH/ZUJZ/1cz Nf9SLCb/TSYe/0kiHP9HHxv/Rh8a/0YfGv9FHxr/RR8a/0YgGv9HIRv/SCIc/0ojHf9LJB7/SiQe/0kj Hf9IIhz/RiAa/0QeGf9DHRj/QhwY/0IcF/9CHBf/QhwX/0QeGP9HIRv/TSch/1QvMP9gPVL/eFV8/5Rs oP+ne7b/u4nL/8eS2P/Ol+D/0Zrj/9Ka5P/Sm+T/05vl/9Oa5f/SmuX/0prl/9Oa5f/TmuX/0pvl/9Kb 5f/SmuX/0pvl/9Oa5f/Tm+X/05rl/9Kb5f/SmuX/05vl/9Ob5f/Tm+X/05vl/9Ob5f/Sm+X/05rl/9Ob 5f/Tm+X/05rl/9Kb5f/Sm+X/0pvl/9Ob5f/Sm+X/0pvlZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANKa5WbSmuX/05vl/9Ob 5f/Sm+X/0pvl/9Oa5f/Tm+X/05vl/9Ob5f/Sm+X/0pvl/9Ob5f/Tm+X/0prl/9Kb5f/TmuX/05rl/9Oa 5f/TmuX/05vl/9Ob5f/Tm+X/05rl/9Ka5f/SmuX/0prl/9Ob5f/TmuX/05rl/9Ka5f/SmuT/0Znj/8yW 3v/Cj9P/sYLA/5xzqf9/W4X/ZUNY/1UwLv9RKyL/TCUe/0khG/9JIRv/SCAb/0ggG/9KIhz/UCgh/142 Lv9tRjz/eVJG/35YSv+AWEr/gVlL/4BZSv+AWUr/gFlK/4FZS/+AWEr/fFVI/3JLQP9kPTP/Uysk/0gh G/9CHBj/QhwY/0IcGP9CHBf/RR8Z/0slHf9QKyj/YT9R/3pXfv+YcKb/r4C+/8CN0f/Llt3/0Jni/9Kb 5P/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc 5f/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc5f/TnOX/05zl/9Oc 5f/TnOVmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA05vlZtOb5f/Tm+X/05vl/9Ob5f/Tm+X/05vl/9Ob5f/Tm+X/05vl/9Ob 5f/Tm+X/05vl/9Ob5f/Tm+X/05vl/9Ob5f/Tm+X/05vl/9Ob5f/Tm+X/05vl/9Ob5f/Tm+X/05vl/9Ob 5f/Tm+X/05vl/9Ob5f/Tm+X/0pvk/9CZ4v/Kldv/vYzN/6h8tv+OaJf/cE1r/1o1OP9ULib/TiYf/0oj Hf9JIhz/SSIc/0sjHv9VLSb/Zj40/3pTR/+AXE//dFFD/2JAMv9JKyH/PiMa/zcdFv81GxT/MhgS/zEY Ef80GhP/Nh0V/zogGP9DJx7/VzYp/25KPP99Wkz/f1pM/21GOv9YMSn/SSIc/0MdGP9CHBj/QhwY/0Uf Gf9NJyD/VDEx/2pIY/+KZZP/pXu0/7uLy//Jldr/0Jrh/9Kc5P/TnOX/05zl/9Oc5f/TneX/053l/9Od 5f/TneX/053l/9Od5f/TneX/053l/9Od5f/TneX/053l/9Od5f/TneX/053l/9Sd5f/TneX/053l/9Od 5f/TneX/053l/9Od5f/TneX/053l/9Od5f/TneX/053l/9Od5WYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTneVm053l/9Od 5f/TneX/053l/9Od5f/TneX/053l/9Od5f/TneX/053l/9Od5f/TneX/053l/9Od5f/TneX/053l/9Od 5f/TneX/053l/9Od5f/TneX/1J3l/9Od5f/TneX/053l/9Od5f/TneX/053l/9Od5P/Qm+H/yZXZ/7iJ yP+heK//gV6H/2NATf9XMSr/USoi/00mHv9MJR7/SyQe/00lH/9dNSz/elNH/4BbTP9qSTz/SSwi/zQX D/8rEAv/LhIN/zQVD/84GBH/OhkS/zwaE/89GxT/PRsU/zwbE/87GhL/ORkS/zYXEP8xFA7/LBEL/ysS Cv82HhX/XD8y/3tVR/+BWk3/Zj81/0skHf9DHRj/Qx4Y/0MdGP9IIhv/Tyoj/1w6Rf98WoD/nnar/7WI xP/Ildj/z5vg/9Oe5P/TnuX/057l/9Oe5f/TnuX/057l/9Oe5f/TnuX/057l/9Sf5f/Un+X/1J/m/9Sf 5f/Un+X/1J/l/9Sf5f/Un+X/1J/m/9Sf5f/Un+X/1J/l/9Sf5f/Un+X/1J/l/9Sf5f/Un+X/1J/l/9Sf 5f/Un+X/1J/mZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANOe5WbTnuX/057l/9Oe5f/TnuX/057l/9Oe5f/TnuX/057l/9Oe 5f/Tn+X/05/l/9Of5f/Tn+X/05/l/9Of5f/Tn+X/05/l/9Sf5f/Tn+X/05/l/9Of5f/Un+X/05/l/9Sf 5f/Tn+X/05/l/9Of5f/TnuX/0Jzi/8aV1v+1iMX/mXKk/3dVdv9eOTv/WDEn/1EpIP9OJh//TSUf/1Ao If9fNy7/fFRH/3lVSP9SMib/MhgR/zAUDf83FxH/PBoT/z8cFf9BHhb/Qh8X/0MfGP9EHxj/RB8Y/0Ug GP9FIBj/RB8Y/0QfGP9DHxj/Qx8Y/0IeF/9AHRb/OhoS/ycPCv8qEQr/NRkR/0QlHP9tSj3/f1pM/2c/ Nf9OJyD/RB4Z/0QeGP9FHxn/TScf/1UyMv9xUGz/lG+f/7KHwf/ElNX/z53g/9Of5P/UoOX/1KDl/9Sg 5f/UoOX/1KDl/9Sg5f/UoOX/1KDl/9Sg5f/UoOX/1KDl/9Sg5f/UoOX/1KDl/9Sg5f/UoOX/1KDl/9Sg 5f/UoeX/1KHm/9Sh5f/UoeX/1KHm/9Sh5f/UoeX/1KHl/9Sh5f/UoeZmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1J/mZtSf 5f/Un+X/1J/l/9Sf5f/Un+X/1J/l/9Sf5f/Un+X/1J/l/9Sg5f/UoOX/1KDl/9Sg5f/UoOX/1KDm/9Sg 5f/UoOX/1KDl/9Sg5f/UoOX/1KDl/9Sg5f/UoOb/1KDl/9Sg5f/UoOX/06Dl/9Cd4v/Jl9n/tIjD/5p0 pv9xT2r/Xjk2/1cvJv9RKSH/UCgg/1AoIP9VLST/elNG/4BbS/9PMSb/MBUO/zIUDv88GxP/QB0V/0Mf GP9FIBn/RSAZ/0YhGf9HIRr/RyEa/0chGv9HIRr/RyEa/0chGv9HIRr/RyEa/0chGv9HIRr/RiEZ/0Ug Gf9CHxf/ORkS/y8VDv9HJBr/OBgR/zMVDv9BIxr/cE0//4NdT/9aMin/RiAa/0QeGf9FHxn/SiQd/1Uw Lf9pSF//lHGh/7CGv//Gl9f/z57h/9Oh5f/Uoeb/1KHm/9Sh5v/Uoeb/1KHm/9Sh5v/Uoeb/1KHm/9Sh 5v/Uoeb/1KHm/9Sh5v/Uoeb/1KHm/9Sh5v/Uoeb/1KHm/9Sh5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si 5v/Uoub/1KLm/9Si5mYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUoeZm1KHl/9Sh5f/UoeX/1KHl/9Sh5f/UoeX/1KHl/9Sh 5f/UoeX/1KHl/9Sh5f/UoeX/1KHm/9Sh5v/Uoeb/1KHm/9Sh5v/Uoeb/1KHm/9Sh5v/Uoeb/1KHm/9Si 5v/Uoeb/1KLm/9Oh5f/Rn+L/x5jX/7SJw/+Sbpz/cE1k/103Lv9WLiX/Uioi/1IpIf9TKiP/akE3/4Nd T/9ZOSz/LxUO/zQVD/8+HBT/Qx8X/0UgGf9HIRr/RyEa/0chGv9HIhr/RyIa/0ciGv9HIhr/RyIa/0ci Gv9HIhr/RyIa/0ciGv9HIhr/RyIa/0ciGv9HIhr/RyEa/0YgGf9CHhf/LxIM/0snHv9FIBn/Qh4X/z0b FP8zFQ7/RSUb/3xYS/91TUH/Tygh/0UfGv9FHxr/SSIc/1ItJf9nRVj/jWuW/7GHv//FltX/0Z/h/9Sh 5f/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si 5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Wi5v/Voub/1aPmZgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANSi 5mbUoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si 5v/Uoub/1KLm/9Si5v/Uoub/1KLm/9Si5v/Voub/1aLm/9Wi5v/UouX/0qHj/8qb2/+3jMb/mnWm/3BN Y/9gOjL/Vy4l/1QrI/9TKyL/Vy4l/3NLP/97Vkj/QCUc/z4fFv9WMib/Tikf/0gjG/9HIRr/RyIa/0gi Gv9IIhv/SCIb/0giG/9IIhv/SCIb/0giG/9IIhv/SCIb/0giG/9IIhv/SCIb/0giG/9IIhv/SCIb/0gi G/9IIhv/SCIa/0UgGf81FxD/QyIY/0wmHf9GIRr/RiEZ/0IeF/85GRH/ORsT/2ZDNv9/WEv/Vi4m/0Yg Gv9GHxr/SCIb/1QvKP9mRFb/lXKg/7SKwv/Jm9n/0qHi/9Sj5f/VpOX/1aPm/9Wk5v/VpOb/1aPm/9Wj 5v/Vo+b/1aPm/9Wj5v/VpOb/1aTm/9Wj5v/VpOb/1aPm/9Wk5v/VpOb/1aPm/9Wk5v/Vo+b/1aTm/9Wj 5v/Vo+b/1aTm/9Wk5v/VpOZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1aPmZtWj5v/Vo+b/1aPm/9Wj5v/VpOb/1aPm/9Wj 5v/Vo+b/1aPm/9Wj5v/Vo+b/1aPm/9Wj5v/Vo+b/1aTm/9Wj5v/Vo+b/1aPm/9Wj5v/Vo+b/1aPm/9Wj 5v/Vo+b/1KPl/9Oi5P/Mndz/upDJ/5p1pf9zUWj/YTox/1gwJ/9VLCT/VSwk/1wzKv9+Vkr/bks9/zUX EP8zFA7/PBwT/1QxJP9lQTT/bUY4/2ZAM/9YMSf/TSce/0giGv9IIxv/SSMb/0okHP9KJBz/SiQc/0ok HP9KJBz/SiQc/0okHP9KJBz/SiQc/0okHP9KJBz/SiQc/0okHP9JIxv/RyIa/0EdF/80Fw//Uish/0gi G/9JIxv/SSMb/0chGv9AHRb/NBUP/08vJP9/WUz/YTgw/0ggG/9HHxv/SSIc/1MtJf9qSVv/lXKf/7eN xf/Lndv/06Pj/9Wl5v/Vpeb/1aXm/9Wl5v/Wpeb/1qXm/9al5v/Wpeb/1aXm/9Wl5v/Vpeb/1aXm/9Wl 5v/Vpeb/1aXm/9Wl5v/Vpeb/1qXm/9al5v/Wpeb/1qXm/9Wl5v/Wpeb/1aXm/9al5mYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADVpOZm1aTm/9Wk5v/VpOb/1aXm/9Wk5v/VpOb/1aXm/9Wk5v/VpOb/1aXm/9Wk5v/VpOb/1aXm/9Wk 5v/Vpeb/1aXm/9Wl5v/VpOb/1aTm/9Wk5v/VpOb/1aXm/9Wk5f/UpOX/z6Df/8CUz/+kfrD/e1hz/2U/ Of9bMin/Vy4m/1cuJf9eNSv/f1hL/2RBNP84GRH/PxwV/0UgGf9FIRn/RCAY/0MfF/9IJRv/UC4i/2dB Mv9tRzn/ZDwx/1YvJf9MJh7/SiQc/0kkG/9JJBv/SiQb/0okHP9KJBz/SiQc/0okHP9KJBz/SiQc/0ok HP9KJBz/SiQc/0okHP9JIxv/RyEa/zcYEf9NKB7/SyUc/0okG/9KJBz/SSQb/0gjG/9DHxj/NxgR/0gp H/99V0n/YTgv/0oiHP9IIRv/SyMd/1gyLf9xT2b/n3ur/72TzP/OoN7/1KXl/9Wm5v/Wpuf/1qbm/9am 5v/Wpub/1qbm/9am5v/Vpub/1abm/9Wm5v/Vpub/1abm/9Wm5v/Vpub/1abm/9Wm5v/Wpub/1qbm/9am 5v/Wpub/1abm/9am5v/Vpub/1qbmZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANWm52bVpub/1qbn/9am5v/Wpub/1qbm/9am 5v/Wpub/1abm/9Wm5v/Vpub/1qbm/9am5v/Wpub/1qbm/9am5//Wpub/1abm/9Wm5v/Vpub/1abm/9Wm 5//Vpub/1Kbl/9Kj4v/Fmtb/q4W6/4NihP9oQT7/XzYs/1gvJ/9YLyf/YDYt/4BYS/9ePC//OBgR/0Qf GP9JJBv/SiQc/0okHP9KJBz/SSQb/0gjG/9GIhn/Qh4W/0MgF/9XNCf/ZEAy/3BIOv9mQDP/VS8l/0wm Hf9KJBv/SiUc/0smHf9LJh3/SyYd/0smHf9LJh3/SyYd/0smHf9LJh3/SyYd/0olHP9JIxv/QR4W/0Ih GP9PKR//SiUb/0smHf9LJh3/SyUd/0okHP9GIhr/OxoT/0AhGP97VUf/Yzsx/0kiHP9JIRv/TiYf/1s1 Mf96W3j/p4K0/8OY0v/RpOL/1afm/9an5v/Wp+b/1qfm/9an5v/WqOf/1qjn/9ao5//WqOf/1qjn/9ao 5//WqOf/1qjn/9ao5//WqOf/1qjn/9ao5//WqOb/1qjm/9ao5v/WqOb/1qjn/9ao5//WqOdmAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA1qfnZtan5//Wp+f/1qfn/9an5//Wp+f/1qfm/9an5v/WqOf/1qjn/9ao5//WqOf/1qjn/9ao 5v/WqOb/1qjn/9ao5//WqOf/1qjn/9ao5//WqOf/1qjn/9ao5//UpuT/zKDc/7WOw/+Rb5f/bkpO/2M6 MP9cMin/WzEo/141K/+AWUv/Y0Az/zkZEf9FIRj/SyUd/0wmHv9MJh7/TCYe/0wmHv9MJh7/SyYd/0sl Hf9KJRz/SSQb/0ciGv9FIRj/RyUb/1UwJf9rRzf/bkc5/2I7L/9TLST/TCce/0slHf9LJR3/TCYe/0wm Hv9MJh7/TCYe/0wmHv9MJh7/TCYe/0slHf9HIhr/PRwU/1MsIv9LJh3/TCYe/0wmHv9MJh7/TCYe/0sl Hf9IIxr/PBsT/0QlG/99V0n/XTQs/0ojHP9JIhz/USoi/2E9Pv+JaY3/soy//8qf2f/Up+T/1qjm/9ao 5v/WqOb/1qjm/9ap5//WqOf/1qjn/9ap5//Wqef/1qnn/9ap5//Wqef/1qnn/9ep5//Xqef/16nn/9ep 5//Wqef/1qnn/9ap5//Xqef/1qnn/9eq52YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWqOdm1qjn/9ao5//WqOf/1qjn/9ao 5//WqOb/1qjm/9ap5//Wqef/1qnn/9ap5//Wqef/1qnn/9ap5//Wqef/1qnn/9ep5//Wqef/1qnn/9ap 5//Wqef/1qnm/9Gl4P/BmND/oH6r/3dVZP9pQDX/XjQr/10zKv9eNCv/eVFE/21JPP88HBT/RiIZ/0wm Hf9NJx7/Ticf/04nH/9OJx//Ticf/04nH/9OJx//Ticf/04nHv9NJx7/TCYd/0slHf9KJRz/RiIZ/0Mg F/9LKR3/Wjcq/25IOP9wSjv/XDUq/00oHv9KJRz/TCYe/00nH/9OJx//Ticf/04nH/9OJx//TSce/0ol HP89GxT/UCog/04oH/9NJx7/Ticf/04nH/9OJx//Ticf/00mHv9JJBv/OxsT/0YnHP+AWEz/WC8o/0oi Hf9LJB3/Vy8m/2tIVf+aeaT/v5bM/8+k3//Wqeb/16nn/9eq5//Xqef/16rn/9ep5//Xqef/16rn/9eq 5//Xquf/16rn/9eq5//Xquf/16rn/9eq5//Xquf/16rn/9eq5//Xquf/16rn/9eq5//Xq+f/16vnZgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANap52bWqef/1qnn/9ap5//Wqef/16nn/9ap5//Wqef/1qrn/9ap5//Wqef/1qnn/9ap 5//Wqef/1qnn/9ep5//Xquf/16rn/9eq5//Xquf/16rn/9aq5v/UqOT/yZ/X/6+LvP+FY3//b0hB/2I5 Lv9fNSv/XjUr/3NLP/95U0b/PBsT/0YhGv9NJx7/Tygf/08oH/9PKB//Tygf/08oH/9PKB//Tygf/08o H/9PKB//Tygf/08oH/9PKB//Tigf/00nHv9LJR3/SyUc/1EsIv9YNCj/Tyog/08qIP9tRjz/d1BC/2pD Nv9XMif/Tigf/00nHv9OKB7/Tygf/08oH/9PKB//TSce/0ciGv9GIxn/Uy0j/04oH/9PKB//Tygf/08o H/9PKB//Tygf/04oH/9JJBv/OhoS/1UzKP97U0b/UCgh/0wlHv9OJh//Xjgx/3lZcv+riLf/xp3V/9So 5P/Wq+b/16vn/9er5//Xq+f/16vn/9er5//Xq+f/16vn/9er5//Xq+f/16vn/9er5//Xq+f/16vn/9er 5//Xq+f/16vn/9er5//Xq+f/16vn/9er5//Xq+dmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA16vnZter5//Xq+f/16vn/9er 5//Xq+f/16vn/9er5//Xq+f/16vn/9er5//Xq+f/16vn/9er5//Xq+f/16vn/9er5//Xq+f/16vn/9er 5//Xq+f/1qrm/9Gm4f+9l8v/nHul/3VPVP9pQDT/YDcs/2A2LP9lPDH/hF5Q/0opH/9EIBj/Ticf/1Ap IP9QKSD/UCkg/1ApIP9QKSD/UCkg/1ApIP9QKSD/UCkg/1ApIP9QKSD/UCkg/08pH/9OKB//TSce/1cx Jf9wSDz/eU1D/2kzM/9VFyL/RAcV/0cFGP9YFiX/aDQ0/3tQRv93UUP/XDYq/04nH/9NJx7/Tygf/1Ap IP9PKB//TCYe/0IfF/9VLiT/Tykf/1ApIP9QKSD/UCkg/1ApIP9QKSD/UCkg/08oH/9JJBv/ORoR/2tI Of9rQzn/TiYf/0wlHv9ULST/ZUFC/5V2nf+6lcj/0Kbg/9ar5v/XrOf/16zn/9es5//XrOf/16zo/9es 5//XrOf/16zn/9es5//XrOf/16zn/9es5//XrOf/16zn/9es6P/XrOf/16zn/9es5//XrOf/16zn/9es 52YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADXrOdm16zn/9es5//XrOj/16zn/9es5//XrOf/16zo/9es5//XrOf/16zn/9es 5//XrOf/16zn/9es5//XrOf/16zn/9es5//YrOf/16zn/9es5//UquT/yqLZ/6uIuP+EYnn/cEg8/2Q7 MP9iOS7/ZDsw/4NbTv9aNir/QR4W/08oIP9RKiH/Uisi/1IrIv9SKyL/Uisi/1IrIv9SKyL/Uisi/1Ir Iv9SKyL/Uisi/1EqIf9PKB//USoh/143LP91Sz//fEVF/3IiOf93CD7/jQVS/54HY/+hB2f/pAdq/6AH Zv+MBVH/cgc6/2wdM/97RUX/fVFG/2hBNv9WMCb/Tigf/08oIP9PKR//SCMb/1ErIf9SKyH/USoh/1Ir Iv9SKyL/Uisi/1IrIv9SKyL/USoh/1ApIP9GIRn/ORoS/31XSP9fNi3/TiYf/04mH/9cNSr/d1dp/6aF sv/Iodf/1Kvk/9iu6P/Yruj/2K7o/9iu6P/Yruj/2K7o/9iu6P/Yruj/2K7o/9iu6P/Yruj/2K7o/9iu 6P/Yruj/2K7o/9iu6P/Yruj/2K7o/9iu6P/Yruj/2K7oZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANit6GbYrej/2K3o/9it 6P/Yrej/2K3o/9it6P/Yrej/2K3o/9it6P/Yrej/2K3o/9it6P/Yrej/2K3o/9it6P/Yrej/2K3o/9it 6P/Yrej/163n/9Kp4f/Bm8//mXmg/3pVWP9qQjX/ZDow/2M6L/9yST3/fFZI/0AeFf9MJh3/Uish/1Ir Iv9SKyL/Uisi/1IrIv9SKyL/Uisi/1IrIv9SKyL/Uisi/1IrIf9RKiH/USoh/1s0Kf90Sj//ekJC/3cf Pf+IDE3/ogdo/7MIfP+6CYT/vAmG/70Jh/+9CYf/vAmH/7kJg/+xCHn/nwZl/4UJSf90GDr/dTk9/35S SP9qQjb/VS8l/08pH/9LJhz/TCgd/1UtJP9SKiH/Uisi/1IrIv9SKyL/Uisi/1IrIv9SKyL/Uish/04o H/8/HhX/VjQp/3ZOQv9RKSH/Tycf/1UtJP9qRUX/kXKV/72azP/QqeD/167n/9iv6P/Yr+j/2K/o/9iv 6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv 6P/Yr+hmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA2K7oZtiu6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv 6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv6P/Yr+j/2K/o/9iv6P/Wrub/y6Xb/7ORwP+GZHr/dExD/2Y9 Mv9lPDH/Zz4z/4JbTv9SLyT/SSQb/1MrIv9ULCP/VCwj/1QsI/9ULCP/VCwj/1QsI/9ULCP/VCwj/1Qr I/9SKyL/Uish/102Kv9zST3/ekJC/3kcPf+MCFD/rwh0/74Kh//BCon/wQqJ/8AKiP/ACoj/wAqJ/8AK if/ACon/vwqI/78KiP+/Coj/vAqE/7AIdv+PBlP/cQ02/3E2Ov96T0T/bEU4/1MtI/9HIxr/Vy8l/1Ms Iv9ULCP/VCwj/1QsI/9ULCP/VCwj/1QsI/9ULCP/Uysi/00nHv87GhL/cU0//2Q7Mf9RKCH/USgh/2A5 L/94WGn/r4+8/8mk1//WruX/2LDn/9iw6P/YsOj/2LDo/9iw6P/YsOj/2LDo/9iw6P/YsOj/2LDo/9mx 6P/Ysej/2bHo/9mx6P/Ysej/2LHo/9ix6P/Zsej/2bHo/9mx6GYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYr+hm2K/o/9iv 6P/Yr+j/2K/o/9iv6P/Yr+j/2LDo/9iw6P/YsOj/2LDo/9iw6P/YsOj/2LDo/9iw6P/YsOj/2LDo/9iw 6P/YsOj/2LDo/9Wu5P/EoNL/pYaw/3xXWP9vRzr/Zz4y/2c+Mv91TUH/dE5B/0IgF/9RKiH/VS0k/1Ut JP9VLST/VS0k/1UtJP9VLST/VS0k/1UtJP9ULCP/Uywj/1s0Kf9uRTn/dkM+/3IfOP+LDE7/rglz/74K hf/DCor/xAqL/8MKi//DCov/wguL/8IKif/CCon/wgqJ/8IKiP/BC4f/wQuI/8IKif/CCon/wgqJ/74K hP+vCXT/iQdL/2URLf9nNDL/dExA/1gzJ/9ULSP/VC0j/1UtJP9VLST/VS0k/1UtJP9VLST/VS0k/1Ut JP9VLST/Uisi/0MgGP9LKh//elNG/1UtJf9RKSH/WTEn/2pFQ/+egKf/wJ7O/9Su4//Ysef/2LHo/9mx 6P/Zsej/2bHo/9mx6P/Zsej/2LHo/9ix6P/Ysej/2bHo/9ix6P/Zsej/2bHo/9ix6P/Ysej/2LLo/9my 6P/Zsej/2bLoZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANmx6GbZsej/2LHo/9ix6P/Zsej/2bHo/9mx6P/Ysej/2bHo/9mx 6P/Ysej/2bHo/9ix6P/Ysej/2LHo/9ix6P/Zsej/2bHo/9mx6P/Ysef/0avg/7qYx/+VdZb/elJH/2xD N/9oQDP/akE1/4VeT/9SLyP/SiUc/1UuJP9WLyX/Vi8l/1YvJf9WLyX/Vi8l/1YvJf9WLyX/VS4k/1gw Jv9kPDD/cUU7/2YnL/93Cjr/pwhp/8ILh//HC47/xwuM/8YLi//GC4r/xQuK/8ULiv/FC4n/xAuJ/8QL if/EC4n/xAuJ/8QLif/EC4n/xAuJ/8QLif/EC4n/xAuJ/8QLif++CoL/owhk/2oFMP9NFRz/ZDsx/2A5 LP9XLyX/VS4k/1YvJf9WLyX/Vi8l/1YvJf9WLyX/Vi8l/1YvJf9VLiT/Tigf/zwcFP90TkD/Yjkv/1Mr Iv9VLCT/ZT0y/4prh/+1lsP/0Kzf/9ey5//Zs+j/2bPo/9mz6f/Zs+j/2bPp/9mz6P/Zs+j/2bPo/9mz 6P/Zs+n/2bPo/9mz6P/Zs+n/2bLo/9my6f/Zsuj/2bLo/9mz6f/Zs+lmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2bLoZtmy 6P/Zsuj/2bLo/9my6P/Zsuj/2bLo/9my6P/Zsuj/2bLo/9my6P/Zsuj/2bLo/9my6P/Zsuj/2bLo/9my 6P/Zsuj/2bLo/9ex5v/MqNv/rY+5/4dkc/93TkH/a0E2/2pBNf9zSj7/fFZH/0YjGv9TLCL/VzAm/1gw Jv9YMCb/WDAm/1gwJv9XLyb/Vy8m/1oyKP9iOi7/YTou/1QrI/9UDR//jQhO/7wLff/JDIz/ygyO/8oM jv/JDI3/yQyN/8kMjv/IDIz/yAyM/8cMiv/HDIr/xwuJ/8YLiP/GC4n/xguJ/8YLif/GC4n/xguJ/8YL if/GC4n/xwuJ/8cLiv/DC4b/rQls/3gFOv9FBhX/RSAZ/1gyJ/9VLST/Vy8m/1gwJv9YMCb/WDAm/1gw Jv9YMCb/WDAm/1cvJv9TLCL/RiMZ/1IyJ/9zSz7/VSwk/1QrI/9fNyz/d1Vf/6iKs//Kp9n/1rHm/9m0 6f/ZtOn/2bTp/9m06f/ZtOn/2bTp/9m06f/ZtOn/2bTp/9m06f/ZtOn/2bTp/9m06f/ZtOn/2bTp/9m0 6f/ZtOn/2bTp/9m06WYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZs+lm2bPp/9mz6f/Zs+n/2bPp/9mz6f/Zs+n/2bPp/9mz 6f/Zs+n/2bPp/9mz6f/Zs+n/2bPp/9mz6f/Zs+n/2bPp/9mz6f/Zs+n/1bHl/8ek1f+jhKn/h2Jj/3JI PP9sQjf/a0E2/31VSP9kQDT/SyUd/1cwJv9YMSf/WTEn/1kxJ/9ZMSf/WDAn/1gwJ/9hOS7/a0I1/103 Kv9LJh3/QxMW/4AGQP/ADH//zQ2Q/80Nj//NDY//zA2O/8wNjv/LDY3/yw2N/8sNjP/LDY3/yg2K/8oN iv/KDYr/yQ2K/8kNi//JDYr/yQyK/8gLif/IC4n/yAuK/8kMi//JDIv/yQyL/8kMiv/FC4b/rAlp/3MF NP87ChH/Uywi/1UtJP9YMCb/WTEn/1kxJ/9ZMSf/WTEn/1kxJ/9ZMSf/WDAm/1gxJv9RLSL/MxcQ/3tV SP9cMin/VSwk/1gvJ/91T07/m32g/8Oi0f/VseT/2bTp/9q16f/aten/2rXp/9q16f/aten/2rXp/9q1 6f/aten/2rXp/9q16f/aten/2rXp/9q16f/aten/2rXp/9q16f/aten/2rXpZgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANm0 6WbZtOn/2bTp/9m06f/ZtOn/2rTp/9q06f/ZtOn/2bTp/9m06f/ZtOn/2bTp/9m16f/Zten/2bXp/9m1 6f/Zten/2bXp/9m16P/UsOL/wJ/N/5Z4k/+BWlH/bkU5/25EOf9vRTr/hV9R/04qH/9TLCP/WjIo/1sy KP9bMij/WjIn/1oxJ/9hOC3/a0M2/2Q+MP9SLCL/Uisi/00lHf9bDCP/swxv/9APkP/VLpz/9dzu//HS 5v/QF5L/zxCO/88Qjv/UNJz/9+jz/+6+3v/OF4//2U6q//ry+f/ihsL/zA2K/8sNiv/hiMD/+e/3//ny +f/58vn/+vL5//ry+f/47fb/3nu6/8sMiv/FDIL/pAlf/1QFHv9MIx3/VS4l/1kxJ/9bMij/WzIo/1sy KP9bMij/WzIo/1oyJ/9YMSf/Xzgs/0AgFv84GRD/bEY4/2pBNv9XLib/Vi4l/2tDOv+KbIP/vJ3J/9Kw 4f/Ztej/2rbp/9q26f/atun/2rbp/9q26f/atun/2rbp/9q26f/atun/2rbp/9q26f/atun/2rbp/9q2 6f/atun/2rbp/9q26f/atulmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2rXpZtq16f/aten/2rXp/9q16f/aten/2rXp/9q1 6f/aten/2rXp/9q16f/aten/2rbp/9q26f/atun/2rbp/9q26f/atun/2bXo/9Gv3/+5m8b/knKE/4BY TP9vRTr/b0U6/3ZNQf99V0n/RyMa/1kwJ/9cMyn/XDMp/1wyKf9dNCr/akE1/21FN/9ZMyf/VC0j/1cw Jv9VLST/TiAc/3gKOP/KD4f/1BGT/9MSkv/vwN7/+/j7/9c9n//RE4//0ROP/+B1uP/8/P7/5I7E/88S jv/cUq7//Pz+/+SMxP/OD4r/zg6K//HG4//58ff/557K/+WVxf/llcT/5pnH//z8/v/uwN3/zg2K/80M if+/C3r/dgY2/0oYGf9ZMSf/WjEn/1wzKf9cMyn/XDMp/1wzKf9cMyn/WzIo/101Kv9UMCX/QyEY/0Yi Gv9WMif/d09D/1kvJ/9YLib/Zz8z/4Rjcf+1mML/z67d/9m36P/at+n/2rfp/9q36f/at+n/2rfp/9q3 6f/at+n/2rfp/9q36f/at+n/2rfp/9q36f/at+n/2rfp/9q36f/at+n/2rfp/9q36WYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADat+lm2rfp/9q36f/at+n/2rfp/9q36f/at+n/2rfp/9q36f/at+n/2rfp/9q36f/at+n/2rfp/9q3 6f/at+n/2rfp/9q36f/Ztuj/zazc/7GVvv+MaG//fVRH/3FHPP9xRzz/gVlM/2pEN/9LJx3/XDMp/100 Kv9eNSr/Zz4z/3FJO/9gOi3/USsh/1oxJ/9cMyn/WzIo/1YvJf9UFx//nQ1W/9QUkP/WFZL/1RaR/+Fn s//7+Pz/5orD/9QYkf/UHJL/77zd//ny+P/aQ6L/0xaP/95Vrf/8/P7/5o3G/9IRjP/SEI3/88zn//bm 8f/VJpf/0Q+L/9EOi//SF47//Pz+//DF4P/QDor/0A6J/84Oh/+gClj/UQsb/1oyJ/9aMSf/XjUr/141 K/9eNSv/XjUr/101Kv9dNCr/Yzsv/0QhF/9TLSP/USsh/0knHv97UkX/XDMp/1kxJ/9kOzD/elVY/6yR t//LrNn/2bjo/9u56v/buer/27nq/9u56v/buer/27nq/9u56v/buer/27nq/9u56v/buer/27nq/9u5 6v/buer/27nq/9u56v/buer/27nqZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANq46mbauOn/2rjp/9q46f/auOr/2rjq/9q4 6v/auOr/2rjp/9q46f/auOn/2rjp/9q46f/auOr/2rjq/9q46v/auOr/2rjp/9m36P/Kq9j/qo+1/4hi YP95UEP/ckk9/3JJPf+GXlH/Wzcr/1IsIf9eNSv/Yjku/3BJO/9rRTf/Uy4j/1YvJP9cMyn/XjUr/181 K/9bMyn/VC0j/2MRJ/+1EWv/2BiT/9gZkv/XG5L/3EGh//bg7f/wvt3/2CyW/9tFof/23u3/8cjg/9gv mP/VG5D/4Fmu//z8/v/nj8X/1BSL/9QTi//0zef/9ubx/9cnlv/TD4r/0w+K/9QZj//8/P7/8MXg/9MO if/SDoj/0g6I/7sMb/9oByn/Vy4k/1oyJ/9fNiv/XzYs/182LP9fNiz/XTUq/2M7L/9QLCH/Tykg/1sy KP9YMCb/RyQa/3dQQv9hOC7/WzIo/2E3Lf9yTEf/o4iq/8iq1f/YuOf/2rrp/9u66v/buur/27rq/9u6 6v/buur/27rq/9u66v/buur/27rq/9u66v/buur/27rq/9u66v/buur/27rq/9u66v/buupmAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA27nqZtu56v/buur/27rq/9u66v/buur/27rq/9u66v/buur/27rq/9u66v/buur/27rq/9u6 6v/buur/27rq/9u66v/auen/2Ljn/8ep1f+miqv/jWhg/3lQQ/90Sz7/dUs//4RcT/9RLSL/WDEm/21F Of9zTD3/WTUo/1ErIf9cNCn/XjUr/2A3LP9gOCz/YTct/1szKf9RKiH/eQ42/8cXff/aHZH/2h+S/9kh kv/aK5X/7arT//fn8f/gV6n/5Xi5//ny+P/oj8T/2CWS/9chkP/iXa7//Pz+/+mQxv/XGI7/1xaM//TN 5//35vH/2SiV/9YQif/VEIr/1xmO//z8/v/xxd//1RCJ/9UQif/VEIn/yw9+/4kHQP9QIh7/WjMo/182 LP9hOC3/YTgt/2A3LP9hOC7/Xzgs/0snHP9cNCn/XzYs/100Kv9JJBv/bko9/2g/NP9dMyr/XzUs/3dQ Rv+dgJ7/xKfR/9e35v/buun/27rq/9u66v/bu+r/27vq/9u66v/bu+r/27rq/9u66v/bu+r/27rq/9u7 6v/bu+r/27vq/9u76v/cu+r/3Lvq/9y76mYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbuupm27rq/9u66v/buur/27rq/9u6 6v/buur/27rq/9u66v/buur/27rq/9u66v/buur/27rq/9u66v/buur/27rq/9q66f/XuOb/xafR/6OF ov+OaV7/eVBD/3ZMQP93TkH/gltN/1YxJf9wSTv/ZUAy/08rIP9XMSb/XjUr/2E4Lf9iOC7/Yjku/2I5 Lv9hOC3/WzMo/1EkH/+QEUb/0h6H/9wjkf/bJ5L/2ymT/9sslP/jb7L/+vb6/+iRw//vu9n/+e72/+Bf qf/aLJL/2iqS/+Rjsf/8/P7/6pPG/9ocjf/aGoz/9c7n//fn8f/cKpX/2RKI/9kRif/ZGo3//Pz+//LF 3//YEIj/2BCI/9gQiP/UD4T/qAtX/1EYHP9bMyn/Xzcs/2I5Lv9iOS7/YTgt/2c+M/9OKh//WDEm/2A3 LP9hOC3/Xzcs/00oHv9nQzf/bkU5/141K/9fNiv/d1BE/5l7k//Bpc7/1rjk/9u76f/bvOr/27zq/9y8 6v/cvOr/3Lzq/9y86v/cvOr/3Lzq/9y86v/bvOr/27zq/9u86v/bvOr/3Lzq/9y86v/cvOr/3LzqZgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANy76mbbu+r/3Lvq/9y86v/cvOr/3Lvq/9y76v/cu+r/27vq/9u76v/bu+r/27vq/9u7 6v/bu+r/27vq/9u76v/bu+r/27vp/9e35f/Dps//oIGZ/45oW/95UEP/d05B/3pRRP+CXEz/XDcp/1Eu Iv9PKiD/XTQq/2E4Lf9iOS7/Yzov/2Q6MP9kOjD/ZDow/2I5Lv9aMij/VB4f/6QXVf/YJoz/3SuS/90u kv/dMpT/3DaV/91Dmv/46/T/9Nfo//nv9v/00eX/3D6Y/9s2lP/cM5P/5Wiw//z8/v/rlsf/3CKP/9we jv/1z+f/+Ofx/98slf/cFYn/2xOI/9wajf/8/P7/8sXf/9oQhv/aEYb/2RCG/9gQhf++Dmn/WhAd/1ox J/9fNyz/Yzov/2I5Lv9mPTH/WzQp/1QtI/9gNyz/Yzkv/2M6L/9iOS7/UCsg/145Lf9zSj7/YDYs/2A2 LP91TUH/lHaJ/76ky//WuOT/273q/9y96//cvev/3L3r/9y96//cvev/3L3r/9y96//cvev/3L3r/9y9 6//cvev/3L3r/9y96//cvev/3L3r/9y96//cvetmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3L3rZty96v/cver/3L3q/9y9 6v/cver/3L3q/9y96v/cver/3L3q/9y96v/cver/3L3q/9y96v/cver/3L3q/9y96v/bver/17nl/8Gm zf+dfpH/jWZZ/3pRRP94UEL/fFNG/3VRQ/87HRP/Vi8k/2A3Lf9jOi//ZDsw/2U8Mf9lPDH/ZTwx/2U8 Mf9lPDH/Yzov/1gwJv9dGSL/uSBo/90tj//eNJP/3TmV/949lv/dQZb/3USX/+6u0P/7+v3/+/v9/+qW wv/dRJj/3UGW/90+lv/mcLP//Pz+/+2Zx//eKpD/3yWO//bQ5//45/H/4S+V/94Xif/eFYf/3x2M//z8 /v/zxd7/3BGD/9wRg//bEYP/2xCD/80Pdf9qCyb/WCsk/183LP9jOi//ZTsw/2U9Mv9SLCL/YDct/2M6 L/9lPDH/ZTwx/2M6L/9ULiT/VjEm/3ZNQf9hOC3/YTgt/3NKP/+Mbnz/vKLJ/9W44//bvur/3L7r/9y+ 6//cvuv/3L7r/9y+6//cvuv/3L7r/9y+6//cvuv/3L7r/9y+6//cvuv/3L/r/9y/6//cv+v/3L/r/9y/ 62YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADcvutm3L7r/9y+6//cvuv/3L7r/9y+6//cvuv/3L7r/9y+6//cvuv/3L7r/9y+ 6//cvuv/3L7r/9y+6//cvuv/3L7r/9y+6v/XuuX/wabN/51+jv+NZln/e1JF/3pRRP9+VUj/b0w+/0Yj Gf9fNiv/ZTsx/2Y9Mv9mPTL/Zj0y/2Y9Mv9mPTL/Zj0y/2Y9Mv9jOi//Vy4l/2UYJv/HKXb/3zaR/988 k//fQpb/3keY/95LmP/eTpj/5oO2//rz+P/47fT/43Gs/95Pmf/eS5j/3keY/+d3tP/8/P7/7ZzI/+Aw kf/hKo//9tHn//jn8f/kMpX/4RqI/+AWhv/hH4v//Pz+//TG3v/fE4T/3hKD/94Sgv/dEoL/1RF5/3cJ LP9TJCD/YDcs/2M7L/9rQjb/VzIm/1w0Kv9kOzD/ZT0x/2Y9Mv9mPTL/ZTwx/1cwJv9SLiL/eE9D/2M5 L/9jOS//cko9/4xtef+8o8j/1bnj/9y/6v/cv+v/3L/r/9y/6//cv+v/3b/r/92/6//cv+v/3L/r/9y/ 6//cv+v/3L/r/92/6//dwOv/3cDr/93A6//dwOv/3cDrZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANy/62bcv+v/3L/r/9y/ 6//cv+v/3L/r/9y/6//cv+v/3L/r/9y/6//dv+v/3L/r/9y/6//cv+v/3L/r/9y/6//cv+v/3L/q/9e7 5f/BqM3/noCP/41nWf98U0b/fFNG/39XSf9sSTz/SSQb/2I5Lv9nPzP/Zz8z/2c/M/9nPzP/Zz8z/2c/ M/9nPzP/Zz4z/2M6L/9XKyP/cxkt/9M0gP/gQJL/4EeU/99Nlv/eU5f/3leZ/95bm//liLX/+fD2//fn 7//id6v/3lyb/95Ymf/fVJj/53+z//z8/v/toMf/4jmR/+Iyj//30+f/+Ofx/+U2k//jHYj/4xmF/+Qg if/8/P7/9Mbe/+EUg//hFIH/4BSB/+ATgP/ZEnj/hQk1/04bG/9fNyv/Zz4y/2I7L/9bMyn/ZTwx/2c+ M/9nPzP/Zz8z/2c/M/9nPjL/WDIn/1AsIP94UET/ZDsw/2Q7MP9zSj7/jnB6/7ykyP/Vu+T/3MHr/93B 7P/dwez/3cHs/93B7P/dwez/3cHs/93B7P/dwez/3cHr/93B6//dwev/3cHs/93B6//dwev/3cHr/93B 6//dwexmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA3cDrZt3A6//dwOv/3cDr/93A6//dwOv/3cDr/93A6//dwOv/3cDr/93A 6//dwOv/3cDr/93A6//dwOv/3cDr/93A6//cwOv/2Lzm/8Kpzv+ggpH/j2lc/35VSP99VEf/gFdK/29L Pv9KJhz/Yzov/2k/NP9pQDT/aUA0/2lANP9pQDT/aUA0/2lANP9pPzT/Yzov/1YnIv+CHTj/2j6I/+BI k//gUJb/3leW/95dmf/eYpv/3Wac/+240P/7+/3/+/n8/+edvv/dZ5z/3WOa/95fmv/nh7T//Pz+/+2l yf/hQ5L/4zuP//fU5//45/H/5zmT/+Ugh//lHIT/5iKI//z8/v/1xt3/4xWA/+MUgP/iFH//4RR+/9sT d/+PCjr/SRIV/183LP9pQDT/WTMn/2Q7MP9nPzP/aUA0/2lANP9pQDT/aUA0/2g+M/9ZMij/Uy8j/3lQ RP9mPTL/ZTwx/3VMQf+Qcnz/vaXJ/9a75f/dwev/3cHs/93C7P/dwuz/3cLs/93C7P/dwuz/3cHs/93B 7P/dwuz/3cHs/93B7P/dwez/3cLs/93C7P/dwez/3cHs/93B7GYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdwuxm3cHs/93C 7P/dwez/3cHs/93B7P/dwez/3cLs/93C7P/dwuz/3cLs/93B7P/dwez/3cHs/93B7P/dwez/3cHs/9zB 6//Yvuf/w6vR/6OFlv+TbmD/f1dJ/39WSP+AWEv/ck5A/0snHP9kPDD/akA1/2tBNv9rQTb/a0E2/2tB Nv9rQTb/a0E2/2lANf9iOS//VyUh/5EmQv/dSYz/31OT/95blv/eY5f/3WiZ/9xtm//cdJ7/9+nw//ft 8v/69vn/8dTh/9tynP/cb5z/3Wqb/+aQtP/8/P7/7arI/+BOkf/hRI7/9tbn//jo8f/nQJL/5SaG/+Yg g//nJof//Pz+//bG3f/lF3//5RZ+/+QVfP/kFXz/3BN0/5QLOv9FDBL/Yjot/1w2Kv9iOi//aT80/2pA Nf9rQTb/a0E2/2tBNv9rQTb/aUA0/1kyJ/9XMyb/d09C/2c+M/9nPjP/eVFE/5J0f/+/qMz/173l/93C 6//dwuz/3cLs/93C7P/dwuz/3cLs/93C7P/dwuz/3cLs/93C7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D 7P/ew+z/3sPsZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3C7Gbdwuz/3cLs/93B7P/dwuz/3cLs/93C7P/dwuz/3cLs/93C 7P/dwuz/3cLs/93C7P/dwuz/3cLs/93C7P/dwuz/3cLr/9q/6P/Hr9T/qIue/5ZyZv+BWUz/f1dK/4BZ S/92UkL/TCgd/2Q8MP9rQTb/bEE3/2xBN/9sQTf/bEE3/2xBN/9sQTf/akA1/2I5Lv9XIiD/nC9M/95S jf/eXJP/3WSW/91smP/ccZr/23ac/+KZtP/7+Pv/7MbU//HX4P/47vP/3oup/9t4nP/bdJv/5Ze1//z8 /v/trsj/31eR/+BOjv/22Of/+Ojw/+ZGkf/lLYT/5SaC/+cqhv/8/P7/9sfc/+cXff/nF3z/5hZ6/+YW ef/bFG//jws1/0MKEP9aMyf/XTUr/2lANP9rQTb/bEE3/2xBN/9sQTf/bEE3/2xBN/9qQDX/VzEm/146 LP92TkH/aUA0/2g/NP9+Vkr/mXyL/8Osz//Zv+f/3cPr/97D7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D 7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D7P/ew+xmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3sPsZt7D 7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D7P/ew+z/3sPs/97D 7P/dw+v/28Hp/8qy1/+tkqn/nHlu/4NbTv+BWUz/gVlM/35YSf9PKyD/ZDsv/21COP9uQzn/bkM5/25D Of9uQzn/bkM5/25DOf9rQTb/YTku/1QgHv+dN0//3VuO/91kkv/dbJb/23OY/9p5m//af53/68LR//n1 +P/ipLj/57XF//r2+f/nssP/2n+d/9p8nP/knbf//Pz+/+yyyf/eYJL/31aO//ba5//46fD/5U2P/+Qz gv/kLID/5jCD//z8/v/2x9z/5xx5/+gaef/oGHj/5xd3/9YTaP+CCiv/OQcL/08qH/9mPTH/bEI3/21D OP9uQzn/bkM5/25DOf9uQzn/bUM4/2pBNf9VLyT/ZkI1/3VMP/9qQTX/a0E2/4VeUv+jiJv/x7DU/9rB 6P/dxOz/3sXs/97F7P/exez/3sXs/97F7P/exez/3sXs/97F7f/exez/3sXs/97F7f/exe3/3sXs/97F 7P/exez/3sXs/97F7GYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADexOxm3sTs/97E7P/exOz/3sTs/97E7P/exOz/3sTs/97E 7P/exez/3sXs/97F7P/exez/3sXs/97F7P/exez/3sXs/97F7P/cw+r/zrfc/7KYtP+gfnX/hl9R/4Ja TP+CWk3/glxL/1IvIv9iOi7/bUM4/29FOv9vRTr/b0U6/29FOv9vRTr/b0U6/2xCN/9jOy//USQd/4Mx O//UX4f/3GuU/9t0l//aepn/2oCc/92SqP/15ev/9OXq/92Xqv/fnq//9+zx//HY4P/bjKP/2oKc/+Oh tv/8/P7/67bJ/91ok//eXo//9tvn//jp8P/kUo//4zqB/+Qyfv/lNYH//Pz+//bI2//mIHb/5x53/+cd dv/kGnL/xhRZ/2QIG/87EQ//XTYr/2pBNv9uRDn/b0U6/29FOv9vRTr/b0U6/29FOv9uRDn/akA1/1Mt I/9uSTv/ckk9/2xCN/9uRDn/i2Va/6qQp//Mtdj/3MPq/97G7P/exuz/3sbs/97G7f/exu3/3sbt/97G 7f/exu3/3sbt/97G7f/exu3/3sbt/97G7f/fxu3/38bt/9/G7f/exu3/38btZgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN7F 7Gbexez/3sXt/97F7P/exez/3sXs/97F7P/exe3/3sXt/97G7f/exu3/3sbt/97G7f/fxu3/38bt/97G 7f/fxu3/3sbt/93F6//Su9//t6C9/6F/eP+KY1b/g1xO/4NcTv+HYVH/WDUn/183K/9tQzj/cEY7/3BG O/9wRjv/cEY7/3BGO/9wRjv/bkQ5/2U9Mf9WLCP/YSck/7pUbf/Zb5D/2nmW/9p/mf/ahJz/46i4//v4 +//szdb/2Y6g/9mPof/x3OL/+PL2/92Yqv/Zhp3/46W3//z8/v/ruMn/3G2S/95kj//23ef/+Orw/+NY jv/iQID/4zd9/+U5f//8/P7/9cnb/+Yldf/mInX/5yB0/9wcaP+jEj7/SAwR/1MqIv9nPzP/bkQ5/3BG O/9wRjv/cEY7/3BGO/9wRjv/cEY7/3BFO/9pPzX/USwi/3VOQP9wRzv/bUQ4/3JIPf+NZ17/sJmz/9C6 3P/dxuv/38ft/9/H7f/fx+3/38ft/9/H7f/fx+3/38ft/9/H7f/fx+3/38ft/9/H7f/fx+3/38ft/9/H 7f/fx+3/38ft/9/H7f/fx+1mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3sftZt7H7f/fx+3/3sft/97H7f/fx+3/38ft/9/H 7f/ex+3/3sft/97H7f/ex+3/38ft/9/H7f/fx+3/3sft/9/H7f/ex+3/3sbs/9a/5P++qsr/pIOD/5Fr XP+FXU//hV1P/4hhU/9nQjP/WTMn/21DOP9xRzz/cUc8/3FHPP9xRzz/cUc8/3FHPP9wRjv/Zz4y/183 LP9YLSX/gTg8/8dmff/afZf/2oOa/9mHm//uz9f//Pz+/+Gqtv/Yj57/2I+e/+S3wf/7+/3/573H/9mJ nP/jqLf//Pz+/+u7yf/bcpL/3WmO//bd5//46vD/41yN/+FEfv/iPXr/5D59//z8/v/1ytr/5Slz/+Um cv/kJHD/vhtR/2MMG/9QJR3/ZTwx/25EOf9xRzz/cUc8/3FHPP9xRzz/cUc8/3FHPP9xRzz/cEY7/2U8 Mf9SLiP/fFRF/3BHO/9vRjr/eVBE/5Ftaf+5pcP/1L/i/97I7P/fyO3/38jt/9/I7f/fyO3/38jt/9/I 7f/fyO3/38jt/9/I7f/fyO3/38jt/9/J7f/fyO3/38jt/9/I7f/fyO3/38nt/9/J7WYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADfyO1m38jt/9/I7f/fyO3/38jt/9/I7f/fyO3/38jt/9/I7f/fyO3/38jt/9/I7f/fyO3/38jt/9/I 7f/fyO3/38jt/9/I7f/eyO3/2cPn/8ay0/+rjpf/mXRm/4ZeUP+GXlH/h2BR/3ZRQP9VMCT/a0I2/3JI Pf9zST3/c0k9/3NJPf9zST3/c0g9/3FGPP9lPDH/Zj0x/2M6L/9hLSf/n09W/9R7kP/Zhpr/2Yqb//DZ 3//z4+f/2pej/9iSnv/Ykp7/3J6q//Pk6f/rzNP/2Iyc/+Cksf/15uv/57HA/9t2kv/cbY7/8crW//PS 3P/iXYr/4Uh9/+JAev/kQXz/99zl//Kxx//lLHD/5Cpw/9smZ/+RFjP/URoZ/2I6Lv9tQzj/ckg9/3NI Pf9zST3/c0k9/3NJPf9zST3/c0k9/3NJPf9xRjz/Xzcs/1s2Kv99VUf/cUc8/3FHPP+BWkz/nX2C/8Gu z//XwuX/38jt/9/J7f/fye3/38nt/9/J7f/fye3/38nt/9/J7f/fye3/38nt/9/J7f/fye7/38nu/9/J 7v/fye7/38nu/9/J7v/fye3/4MnuZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/J7Wbfye3/38nt/9/J7f/fye3/38nt/9/J 7f/fye3/38nt/9/J7f/fye3/38nt/9/J7f/fye3/38nt/9/J7f/fye7/38nu/9/J7v/cxuv/zrnb/7CY qf+hfnL/iGBT/4dgUv+HYFH/g11N/1gzJf9oPzP/ckg9/3RKPv91Sj//dUo//3VKP/90ST7/cUc8/2Q8 MP9sQjf/bUM4/2A3LP9rMy7/s2Nr/9WElP/ZjJv/2I6c/9iRnv/Yk57/2JOd/9iUnv/Yk57/2JOe/9iR nf/Yjpz/2YqZ/9mHl//agJX/2nmS/9xwjf/dZ4n/3l6E/99Vgf/gTHz/4UR4/+I+df/jOHP/5DRw/+Qw b//fLGr/sSBG/14ZHP9eNCr/bUQ4/3NJPf91Sj//dUo//3VKP/91Sj//dUo//3VKP/91Sj//dEk+/29F Ov9WMCX/bkc5/3lQQ/9yST3/ckg9/4pkV/+lipf/y7fY/9vG6f/gyu7/4Mru/+DK7v/gyu7/4Mru/+DK 7v/gyu7/4Mru/+DK7v/gyu7/4Mru/+DK7v/gyu7/4Mru/+DK7v/gyu7/4Mru/+DK7v/gyu5mAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA38nuZt/J7v/fye7/38ru/9/J7v/fye7/38nu/9/J7v/fye7/38nu/9/J7v/fye7/38nu/9/J 7v/fye3/38nt/9/J7v/fye7/38nu/97I7P/Uv+H/uKK6/6mKg/+MZVb/iGFS/4hhUv+HYFH/ZUAw/2I6 Lv9xRzz/dUs//3VLP/91Sz//dUs//3VKP/9ySDz/Zj0x/3BGO/9ySDz/a0I2/2E2LP99Pzz/vnJ6/9eL mf/Yj5z/2JKc/9iUnf/YlJ3/2JWd/9iUnf/Yk53/2JKc/9iOm//YjJr/2YeX/9qBkv/aepD/3HKN/91p h//eYIP/31Z//+BOev/hRnf/4UF1/+M8cf/jN27/4TNr/8IoU/90GSX/XC8n/2tBNv9zST3/dUs//3VL P/91Sz//dUs//3VLP/91Sz//dUs//3VLP/90Sj7/akE1/1UvI/96U0X/dk1A/3RLPv91TD//l3Rr/7Ca rv/Rvd7/3cnr/+DL7v/gy+7/4Mvu/+DL7v/gy+7/4Mvu/+DL7v/gy+7/4Mvu/+DL7v/gy+7/4Mvu/+DL 7v/gy+7/4Mvu/+DL7v/gy+7/4Mvu/+DL7mYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgy+5m4Mvu/+DL7v/gy+7/4Mvu/+DL 7v/gy+7/4Mvu/+DL7v/gy+7/4Mvu/+DL7v/gy+7/4Mvu/+DL7v/gy+7/4Mvu/+DL7v/gy+7/38vt/9nF 5//Dr8z/r5OV/5ZxYv+KY1T/imJU/4liU/93UUH/XDYp/25EOf92TED/d01B/3dNQf93TUH/dkxA/3JI PP9mPjL/c0g9/3VLP/9zST7/a0E2/2E0Kv+ISUX/x3yE/9ePmf/Yk5v/2JSc/9eVnP/XlZz/15Wc/9iU nP/Ykpv/2JCZ/9iMmP/ZiJb/2oGS/9p8j//cc4v/3GqH/95hgf/fWH3/4FF5/+FJdv/hRHT/4j9w/+E7 bf/MMVv/gh0s/1ooIv9pQDX/c0g9/3dMQf93TUH/d01B/3dNQf93TUH/d01B/3dNQf93TUH/d0xB/3NJ Pf9iOi//YDwu/3xURv92TUD/dUw//39WSf+hgYD/vqrF/9jE5f/fy+3/4Mzu/+DM7v/gzO7/4Mzu/+DM 7v/gzO7/4Mzu/+DM7v/gzO7/4Mzu/+DM7v/gzO7/4Mzu/+DM7v/gzO7/4Mzu/+DM7v/gzO7/4MzuZgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAODM7mbgzO7/4Mzu/+DM7v/gzO7/4Mzu/+DM7v/gzO7/4Mzu/+DM7v/gzO7/4Mzu/+DM 7v/gzO7/4Mzu/+DM7v/gzO7/4Mzu/+DM7v/gzO3/3Mnq/8y62f+0m6v/o4Bz/41mWP+LZFb/i2NV/4Zf T/9fOiv/Zz8z/3VLP/94TUL/eE5C/3hNQv92TED/cUg8/2Y9Mf90Sj7/d0xB/3dNQf90ST7/aT80/2U1 LP+SU07/yoOJ/9eSmv/YlJv/15Wc/9eVnP/XlZz/2JSb/9iSmv/Yj5j/2IyX/9mHlf/agZH/2nqN/9xz if/caoT/3mKB/99aff/gU3j/4Et0/+FGcv/gQW3/zzhe/40iMv9dJSH/Zz0y/3NJPf93TUH/eE5C/3hO Qv94TkL/eE5C/3hOQv94TkL/eE5C/3hNQv93TEH/bkU5/1o0J/9zTD7/elJE/3dOQf94T0L/j2lb/6mP mv/JuNX/3Mrq/+DN7v/hze//4c3v/+HN7//hze//4c3v/+HN7//hze7/4c3v/+HN7//hze//4c3u/+HO 7v/hzu//4c7v/+HO7//hzu//4c7v/+HO7//hzu9mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4c3vZuHN7v/hze7/4c3v/+HN 7//hze7/4c3u/+HN7//hze//4c3v/+HN7//hze7/4c3u/+HN7//hze//4c3u/+HN7v/hze7/4c3u/+HN 7v/fzO3/1cLi/7+rxf+qi4H/k25f/4xlVv+MZFb/i2RW/3BKO/9fOCv/ckg8/3hOQv95T0P/eU9D/3hN Qv9wRjr/ZDsw/3ZMQP94TkL/eU9D/3lOQ/9zST7/aD4z/2U1K/+dXFn/z4iP/9eTm//YlJv/2JSa/9iU m//Yk5v/2JGZ/9iOmP/ZipX/2YaS/9qAj//aeov/3HKH/91pgv/eYn//3lt7/99Ud//gTXP/4Ehw/9E+ YP+XKDn/XCEe/2U7MP9ySDz/eE5C/3lPQ/95T0P/eU9D/3lPQ/95T0P/eU9D/3hOQv94TkL/d01B/3RK Pv9kPDD/XTcq/39XSf96UUT/eVBD/35WSf+YdWr/uKS7/9LB4P/fze3/4M7u/+HO7//hzu//4c7v/+HO 7//hzu//4c7v/+HO7//hzu//4c7v/+HO7//hzu//4c/v/+HP7//hz+//4c/v/+HP7//hz+//4c/v/+HP 72YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADhzu9m4c7v/+HO7//hzu//4c7v/+HO7//hzu//4c7v/+HO7//hzu//4c7v/+HO 7//hzu//4c7v/+HO7//hzu//4c7v/+HO7//hzu//4c7v/+DO7v/byun/zLvY/7OYnv+gfXD/jWdY/41m V/+MZVb/g11N/2I9Lf9qQjX/d0xB/3tQRf96UET/eE5C/25FOf9kPDD/d01B/3pPRP97UEX/e1BF/3lP Q/9zST3/Zz4y/2k4L/+dXln/z4qQ/9eSmf/Ykpj/2JKY/9iQmP/Yjpf/2IyW/9mIkv/ag4//2n2M/9t3 if/ccIX/3WiA/95hfP/eW3j/3lR0/9tNb//KQ17/jCoz/1siHv9kOi7/cUc8/3dNQf95T0P/eU9D/3hO Qv95T0P/ek9E/3tRRf98U0f/f1ZK/4FZTP+EW07/gFhL/2Q+L/9zTT3/flVI/3tSRf97UUX/jGZZ/6aJ iv/IudT/2cnn/+DP7v/hz+//4dDv/+HQ7//hz+//4dDv/+HQ7//hz+//4dDv/+HQ7//h0O//4dDv/+HQ 7//h0O//4dDv/+HQ7//h0O//4c/v/+HP7//hz+//4c/vZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHP72bhz+//4c/v/+HP 7//hz+//4c/v/+HP7//hz+//4c/v/+HP7//hz+//4c/v/+HP7//hz+//4c/v/+HP7//hz+//4c/v/+HP 7//hz+//4c/v/97N7P/VxOL/u6e5/62Phv+RbF3/jWdY/41nWP+LZVX/c009/2I7LP9xSDz/e1BF/3tR Rf95T0P/bUM4/2Y+Mv94TkL/e1FF/3xRRv98UUb/e1FF/3pPRP9zST3/ZTsw/2c4LP+oa2b/zYmM/9aP lf/YjpX/2I6W/9iMlf/ZiZL/2YWR/9qBjf/ae4n/23WF/9xugv/daH7/3WF5/9tadP/UUmr/u0RX/4ov NP9UHhn/XjUr/3BHO/95T0P/flRI/4JZTP+GXVH/imJV/4xlV/+NZlj/jGVX/4hhUv9+V0n/cU0+/2VB NP9XNSj/Wzgp/31WR/98U0b/fFNG/35VSP+denD/s52s/9PC3//ezez/4tDv/+LQ8P/i0O//4tDv/+LQ 8P/i0PD/4tDv/+LQ7//i0O//4tDw/+LQ7//i0PD/4tDw/+LQ7//i0O//4tDv/+LQ7//i0O//4tDv/+LQ 7//i0PBmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA4dDvZuHQ7//h0O//4dDv/+LQ8P/i0PD/4tDv/+LQ7//i0O//4tDv/+LQ 7//i0O//4tDv/+LQ7//i0O//4tDv/+LQ7//i0O//4tDv/+LQ7//i0PD/4dDv/93M6v/KudT/tp2i/6F/ cf+Palr/jmhZ/45oWf+JY1P/Z0Ex/2Y/Mf94TUL/e1FF/3pQRP9rQjb/akI2/3pQRP98Ukb/fVNH/31T R/99U0f/fVJH/3pRRP9zSj3/Zz0x/2Y4LP+MVkz/q21n/7h1cv/AeHr/w3d5/8Z2ev/Ic3n/yXB4/8do cv/GYm7/xVxq/75VYP+1TFf/p0NL/402Ov9eIB7/SB0V/2pDNf9/WUn/gFtM/31ZSv97V0j/elRF/3ZQ QP9tRTf/Yzwu/143K/9fOCz/Zj0y/2xDN/9uRTn/ZTww/1UwJP94UkL/f1dJ/39WSP9+VUj/j2la/6qO kP/Gtc//28vp/+HQ7//i0fD/4tHw/+LR8P/i0fD/4tHw/+LR8P/i0fD/4tHw/+LR8P/i0fD/4tHw/+LR 8P/i0fD/4tHw/+LR8P/i0fD/4tHw/+LR8P/i0fD/4tHw/+LR8GYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi0PBm4tDv/+LR 7//i0PD/4tHw/+LQ8P/i0O//4tHv/+LR7//i0O//4tDw/+LQ7//i0e//4tHw/+LQ7//i0O//4tDv/+LQ 7//i0O//4tHv/+LR8P/h0e//4M/u/9TE4f/ArcH/ro+H/5dyY/+PaVr/j2la/45oWf97VUT/Yz4u/29G Of95T0P/elBE/2g/M/9uRTn/e1FF/35TSP9+U0j/flNI/35TSP9+U0j/fVNH/3tRRf90ST7/ZTsw/1wy J/9jNSr/ajkv/3E8M/90PDP/dzw1/3o8Nv97Ojb/dzYx/3UzLv9zMS3/ay0o/2MoI/9bJx//UyQc/0oi Gv9QKh//ZD0w/2lBNP9pQTX/akE1/2xDN/9vRjr/ckg8/3VLP/92TUD/eE5C/3lPQ/96T0T/eU9D/3JJ Pf9eNyr/a0U2/4BZSv9/V0n/f1dJ/4RdT/+ffHH/uaS1/9HD3//f0O3/4dLv/+LS8P/i0vD/4tLw/+LS 8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS 8P/i0vD/4tLwZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLS8Gbi0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS 8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/h0u//3M3q/86/ 2v+4oan/p4d6/5JsXv+Ra1z/kGpb/4xmV/91Tz//ZD4u/3FHO/93TkH/Yjou/3FIPP99Ukf/f1VJ/39V Sf9/VUn/f1VJ/39VSf9/VUn/flVJ/3xSRv93TUH/bUU4/2pBNP9tQzf/aD4z/2c9Mv9mPTL/Zj0y/2c9 M/9oPTL/aD4z/2hANP9qQTX/bEI2/21EOP9vRTn/ckg9/3ZLQP95T0P/elBE/3tRRf98UUb/fFJG/31S R/99Ukf/fVNH/31UR/99VEj/flRI/35TSP94TkL/ZT4x/2ZAMv9+V0j/gVlM/4FZTP+BWkz/l3Jl/7CV mP/Lvdb/283o/+LT8P/i0/D/4tPw/+LT8P/i0/D/4tPw/+LT8P/i0/D/4tPw/+LT8P/i0/D/4tPw/+LT 8P/i0/D/4tPw/+LT8P/i0/D/4tPw/+LT8P/i0/D/4tPw/+LT8P/i0/BmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4tLwZuLS 8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0vD/4tLw/+LS8P/i0/D/4tPw/+LT 8P/i0/D/4tPw/+LT8P/i0/D/4tPw/+LT8P/g0e7/2Mrm/8W0yv+0mZb/n3xt/5JsXf+Ra13/kWpc/4pk VP9sRzb/Zj8x/29GOv9ZMyf/c0k9/35TSP9/Vkr/f1ZK/39WSv9/Vkr/f1ZK/39WSv9/Vkr/f1ZK/35U SP98Ukb/dUxA/3xTRv99VEj/eU9D/3lOQ/95T0T/eU9E/3pQRP96UEX/elFF/3pRRf97UUX/fFJG/31S R/99U0j/flRI/35VSf9+VUn/f1VJ/39WSv9/Vkr/f1ZK/39WSv9/Vkr/f1ZK/39WSv9/Vkn/e1FG/2pB Nf9iPC3/fFVG/4JbTf+CWk3/glpN/41nWf+pioT/wK/C/9fJ5P/g0u7/49Tx/+PU8f/j1PD/49Tw/+PU 8P/j1PD/49Tw/+PU8P/j1PH/49Tx/+PU8f/j1PD/49Tw/+PU8f/j1PH/49Tx/+PU8f/j1PD/49Tw/+PU 8P/j1PD/49Tx/+PU8WYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj1PBm49Tw/+PU8P/j1PD/49Tw/+PU8P/j1PD/49Tw/+PU 8P/j1PD/49Tw/+PU8P/j1PD/49Tw/+PU8P/j1PD/49Tw/+PU8f/j1PD/49Tw/+PU8f/j1PD/49Tw/+LU 8P/g0e3/08bg/8CtvP+xk4n/mHRl/5JsXf+SbF3/kWtc/4VfT/9qRTT/Yjwt/00rH/90Sj7/f1RJ/4FX TP+BV0z/gVdM/4FXTP+BV0z/gVdM/4FXTP+BV0z/gFdL/4BWS/9+VUn/eU9D/4FZS/+DWk7/f1ZK/39X Sv+AV0v/gVdM/4FXTP+BV0z/gVdM/4FXTP+BV0z/gVdM/4FXTP+BV0z/gVdM/4FXTP+BV0z/gVdM/4FX TP+BV0z/gVdM/4FXTP+BV0z/gFdL/3xTR/9sQzf/Yjst/3dRQf+EXU7/hF1O/4RcT/+IYVP/ooJ1/7mk sP/Rxd7/3tHs/+LU8P/j1fH/49Xx/+PV8f/j1fH/49Xx/+PV8f/j1fH/49Xx/+PV8f/j1fH/49Xx/+PV 8f/j1fH/49Xx/+PV8f/j1fH/49Xx/+PV8f/j1fH/49Xx/+PV8f/j1fH/49XxZgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPV 8Gbj1fD/49Xw/+PV8P/j1fD/49Xw/+PV8P/j1fD/49Xx/+PV8f/j1fH/49Xx/+PV8f/j1fH/49Xx/+PV 8f/j1fH/49Xx/+PV8f/j1fH/49Xx/+PV8f/j1fH/49Xx/+LU8P/d0Ov/z8La/72nr/+sjoD/l3Jj/5Nu Xv+TbV7/kWxc/4ReTv9oQjL/RiUa/21EOf9+VEn/gVdM/4JYTf+CWE3/glhN/4JYTf+CWE3/glhN/4JY Tf+CWE3/gVhM/4BXS/9+VUn/dk1B/4FZS/+FXVD/gFdL/4FXTP+CWE3/glhN/4JYTf+CWE3/glhN/4JY Tf+CWE3/glhN/4JYTf+CWE3/glhN/4JYTf+CWE3/glhN/4JYTf+CWE3/glhN/4FXTP98Ukb/bEQ3/2E7 LP92UED/hF1O/4ZeUP+GXlD/iGFS/558bv+1naH/zL/W/9zP6f/i1e//4tbw/+PW8f/j1vH/49bx/+PW 8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW 8f/j1vH/49bx/+PW8f/j1vFmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA49bxZuPW8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW 8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW8f/j1vH/49bx/+PW 8f/j1vH/4tbw/+HV7//azuj/y73U/7qiov+oiHn/lXBg/5RuX/+Ubl//kmxd/4JdTf9bNyn/WjQo/3VL QP+AVkv/g1lO/4NZTv+DWU7/g1lO/4NZTv+DWU7/g1lO/4NZTv+CWU3/glhN/4FXTP9+VUn/dUs//4Jb Tf+GXVH/gVdM/4JZTf+DWU7/g1lO/4NZTv+DWU7/g1lO/4NZTv+DWU7/g1lO/4NZTv+DWU7/g1lO/4NZ Tv+DWU7/g1lO/4NZTv+BWEz/fFNG/2pCNf9iPC3/dlA//4VeT/+HYFL/h2BR/4dgUv+admj/sZaT/8e5 zv/azeb/4dTv/+PW8f/j1/H/49fx/+PX8f/j1/H/49bx/+PW8f/j1/H/49fx/+PW8f/j1/H/49fx/+PW 8f/j1vH/49bx/+PX8f/j1vH/49bx/+PW8f/j1vH/49bx/+PX8f/j1/H/49bx/+PX8WYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADj1vFm49bx/+PW8f/j1vH/49bx/+PW8f/j1/H/49bx/+PX8f/j1/H/49bx/+PW8f/j1vH/49fx/+PX 8f/j1vH/49fx/+PW8f/j1vH/49bx/+PW8f/j1/H/49fx/+PW8f/j1vH/49bw/+HU7//azuf/ybrP/7yj o/+mhXb/lnFi/5RvX/+Ub1//k21e/4diUf9sRzb/Xzks/29GOv9/Vkr/g1lO/4NZT/+EWk//hFpP/4Ra T/+EWk//hFpP/4RaT/+EWk//g1lO/4JYTf9+VUn/cEg6/4BZS/+IYFP/glhN/4JZTf+EWk//hFpP/4Ra T/+EWk//hFpP/4RaT/+EWk//hFpP/4RaT/+EWk//hFpP/4RaT/+DWU7/gVdM/3ZNQP9mPjH/ZD8v/3tU RP+IYFL/iWJT/4lhU/+JYlT/mHNl/7OXlP/Gtsj/2czl/+HU7v/j1/H/5Nfx/+TX8f/k1/H/5Nfx/+TX 8f/k1/H/5Nfx/+TX8f/k1/H/5Nfx/+TX8f/k1/L/5Nfx/+TX8v/k1/H/5Nfx/+TX8f/k1/H/5Nfx/+TX 8f/k1/H/5Nfx/+TX8f/k1/H/5NfxZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTX8Wbk1/H/5Nfx/+TX8f/k1/H/5Nfx/+TX 8f/k1/H/5Nfx/+TX8f/k1/H/5Nfx/+TX8f/k1/H/5Nfx/+TX8f/k1/L/5Nfx/+TX8f/k1/H/5Nfx/+TX 8f/k1/H/5Nfx/+TX8f/k1/H/49fx/+HU7v/XzOT/yLrM/7mfmf+mhXb/lXFh/5VvYP+Vb2D/k25e/4tl Vf9xSzr/Xzkr/2pCNf96UUX/gllN/4RaT/+FW1D/hVtQ/4VbUP+FW1D/hVtQ/4VbUP+EWk//hFpP/4JZ Tf9+VUn/b0c6/4BYS/+IYFT/gllN/4RZT/+EWk//hVtQ/4VbUP+FW1D/hVtQ/4VbUP+FW1D/hVtQ/4Vb UP+EWk//g1lO/35VSf9ySTz/Yjsu/2dBMv99V0f/iWJU/4tjVv+KY1T/imRV/5h0Zv+vkYn/xLTD/9XL 4v/g1e7/49jx/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY 8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PJmAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA5NjyZuTY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY 8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/5Njy/+TY8v/k2PL/49jx/+HW 7v/Zzub/yLrL/72lov+oh3n/mHRk/5VxYf+VcGH/lXBg/5BrXP+AWUr/ZT8w/185LP9uRTn/fFNH/4Na Tv+FW1D/hVxQ/4VcUP+FXFD/hVxQ/4VcUP+FXFD/hFtP/4NZTv9+VUn/a0Q3/31XSf+KY1X/gllN/4Ra T/+FXFD/hVxQ/4VcUP+FXFD/hVxQ/4VcUP+EW0//hFpP/39WSv91TD//Zj4x/2I8Lf90Tz3/hV9P/4xl V/+MZVb/jGVW/41nWP+ceGn/tJqT/8S0w//YzuX/4Nbu/+TZ8f/k2fL/5Nny/+TZ8v/k2fL/5Nny/+TZ 8v/k2fL/5Nny/+TZ8v/k2fL/5Nny/+TZ8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa 8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8mYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk2fJm5Nny/+TZ8v/k2fL/5Nny/+TZ 8v/k2fL/5Nny/+TZ8v/k2fL/5Nny/+TZ8v/k2fL/5Nny/+TZ8v/k2fL/5Nny/+TZ8v/k2fL/5Nny/+TZ 8v/k2fL/5Nny/+TZ8v/k2fL/5Nny/+TZ8v/k2fL/5Nnx/+HW7v/YzeT/y73O/72kof+sjX//mXZm/5Zx Yv+VcWH/lXFh/5NvX/+IYlL/dE4+/2E8Lf9iOy7/cEc7/31TR/+DWU7/hVxQ/4ZcUf+GXVH/hl1R/4Zd Uf+GXFH/hVxQ/4NaTv9/Vkr/akM2/3lURf+LY1b/g1pP/4RbT/+GXFH/hl1R/4ZcUf+FXFD/g1pO/39V Sv91TED/aEEz/2I8Lv9sRTb/fVdG/4plVf+NZ1j/jWdY/41nWP+Palr/oYBx/7SalP/Iucj/183j/+HX 7//k2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa 8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dryZgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAOXa8mbl2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa 8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa8v/l2vL/5dry/+Xa 8v/l2vL/5Nry/+LX7//c0ej/zcLU/8Gsrv+ylYj/nnxs/5dyY/+WcmL/lnJi/5ZxYv+Tbl7/hmBP/3JN PP9gOyz/YDks/2hANP92TUH/flVJ/4NaTv+FXFD/hl1R/4deUv+HXVL/hl1R/4RaT/9/VUn/aUE1/3VQ Qf+MZVf/g1pO/4RaT/+DWk7/f1ZK/3lPRP9uRjj/ZT0w/2I8LP9rRTb/e1VF/4pkVP+OaFn/j2la/45o Wf+OaFn/lHBh/6iIev+7pKP/yr3O/9rR5//h2O//5Nvy/+Xb8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb 8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xc8//l3PP/5dzz/+Xc 8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PNmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5dvzZuXb8//l2/P/5dvz/+Xb 8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb 8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb8//l2/P/5dvz/+Xb8//l2/P/5Nvy/+LZ8P/d1Or/0sjb/8Wz uf+5npX/p4Z4/5l2Zv+XcmP/l3Jj/5ZyYv+WcWL/km1d/4hjUv93UkH/aUQ0/2A6LP9gOSz/Z0Ay/25F Of91TED/elFF/31USP9/VUr/flVJ/3xTR/93TUH/XTcr/2hEN/9/WEn/cEg7/2pDNf9kPS//Yjwt/2hC Mv9xSzv/gFpK/4pkVf+PaVr/kGpc/5FqXP+Qalv/kmxd/557bP+xlYr/wKyw/8/F2P/b0+n/4tnw/+Tc 8v/l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc 8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3fP/5d3z/+Xd 82YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADl3PNm5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc 8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc8//l3PP/5dzz/+Xc 8//l3PP/5dzz/+Xc8//l3PP/5Nzy/+Pb8f/f1+3/1s3i/8m8yP/AqaX/sJOF/6B+bv+XdGT/l3Jj/5dy Y/+XcmP/lnJi/5VwYP+Pa1r/hF5O/3hSQv9sRjX/Yjwt/104Kf9gOiv/XTgq/144K/9eNyv/XTcq/1w2 Kf9XMSX/SScb/145Kf9kPy7/akQz/3RPPv99WEf/iWNT/49qWv+SbF3/kmxd/5JsXf+Sa13/kmtd/5h0 ZP+piXr/uqCb/8e3wv/VzeD/39fs/+Tc8f/l3fL/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd 8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd 8//l3fP/5d3z/+Xd8//l3fP/5d3z/+be8//m3vP/5t7zZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOXd82bl3fP/5d3z/+Xd 8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd 8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3z/+Xd8//l3fP/5d3y/+Xd 8v/i2+//3NTp/9PK2//Htr3/vqeg/62Ogf+gfm//mXVm/5hzZP+Xc2P/l3Nj/5dzY/+WcmL/lXFh/5Nu Xv+OaVr/iWNT/4NeTf9/WUj/e1RF/3hSQv93UUH/eVND/3xXRf+AWkn/hWBP/4tlVf+PaVr/km1d/5Ru X/+Ubl//lG5f/5RuX/+Tbl7/lG5f/5p2Zv+mhnj/uaCX/8Owtf/Rx9j/29To/+La7//l3fL/5d3z/+be 8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be 8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be 8//m3vNmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5t7zZube8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be 8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+be 8//m3vP/5t7z/+be8//m3vP/5t7z/+be8//m3vP/5t7z/+Xd8//k3PH/4Nnu/9nR5P/QxNT/xbK1/7ui mf+ukIH/oX9v/5l2Zv+YdGT/mHNk/5dzY/+Xc2P/l3Nj/5dyY/+XcmP/lnJi/5ZxYv+WcGH/lXBh/5Vw Yf+VcGH/lXBh/5VwYf+VcGH/lXBh/5VwYP+Vb2D/lW9g/5VvYP+Vb2D/lW9g/5t3aP+piHr/tpuQ/8Gt rf/NwdD/18/j/9/Y7f/j3PH/5d3z/+Xd8//m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be 9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be 9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be9GYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADm3vRm5t70/+be 9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be 9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be9P/m3vT/5t70/+be 9P/m3vT/5t70/+be9P/l3vP/5N3y/+Da7v/a0+f/0cjY/8i4v//CrKn/t5yR/6uMfv+igXH/m3hp/5l1 Zf+YdGT/mHRk/5hzZP+Xc2P/l3Nj/5dzY/+XcmP/l3Jj/5dyY/+XcmP/lnJi/5ZyYv+WcmL/lnFi/5Zy Yv+YdGX/nnts/6eGeP+zlor/v6ei/8W0uf/QxtX/2dPm/+DZ7f/j3fH/5d/z/+bf9P/m3/T/5t/0/+bf 9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf 9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bg 9P/m4PT/5uD0ZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAObf9Gbm3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf 9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf 9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/m3/T/5t/0/+bf9P/l3/P/5d/z/+Pd 8f/g2u7/29Pn/9TL2//Mv8r/xrO1/7+noP+4nZL/sJOE/6iHeP+igXD/nnxs/5x5af+ad2j/mXVm/5h1 Zf+YdGT/mHVl/5l1Zf+ad2f/nXlq/6B9bv+lhHX/rY+B/7WZjf+8o5z/w6+w/8u9xf/Tydn/2tPm/9/a 7f/j3fH/5d/z/+bg8//m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg 9P/m4PT/5uD0/+bg9P/m4PT/5+D0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg 9P/n4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PRmAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5uD0Zubg 9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg 9P/m4PT/5+D0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg 9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+bg8//l3/L/493w/+DZ7f/b1ej/1c7e/9DE 0f/KvMP/x7W3/8Wwrv/AqaL/vKKY/7idkv+2m4//tZmN/7WajP+2mo7/t52Q/7qhlv+/p5//w6+r/8a0 tf/JusD/z8PQ/9XN3v/b1ef/39rt/+Pd8P/l3/L/5uDz/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh 9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh 9P/n4fT/5+H0/+fh9P/n4fT/5+H1/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh 9P/n4fT/5+H0/+fh9GYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADn4PRm5uD0/+bg9P/m4PT/5uD0/+bg9P/m4PT/5uD0/+fh 9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh 9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh 9P/n4fT/5+H0/+fh9P/m4fT/5uH0/+Xg8//k3/H/4dzv/97Z6//b1eb/2NLi/9XO3f/Sytf/0MbR/8/E z//PxM7/z8TO/8/Ez//PxdD/0cnW/9TN3P/Y0eL/2tTl/93Y6v/h3O7/497x/+Xf8v/m4fT/5uH0/+fh 9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+H0/+fh9P/n4fT/5+L1/+fi 9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi 9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1ZgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOfi 9Wbn4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi 9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi 9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi 9f/m4vT/5uL0/+Xh8//l4PP/5ODy/+Pf8f/i3vD/4t3v/+Ld7//i3e//4t3v/+Le8P/j3vD/5ODy/+Xg 8//l4fP/5uL0/+bi9P/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/VmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5+L1Zufi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi 9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fi9f/n4vX/5+L1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/T/5+P0/+fj 9P/n4/T/5+P0/+fj9P/n4/T/5+P0/+fj9P/n4/T/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fk9f/n5PX/5+T1/+fj9f/n5PX/6OT1/+jk9WYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADn4/Vm5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj 9f/n4/X/5+P1/+fj9f/n4/X/5+P1/+fj9f/n4/X/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT2/+jk 9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2ZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjk9Wbo5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk 9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5PX/6OT1/+jk9f/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk 9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk 9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk 9v/o5Pb/6OT2/+jk9v/o5fb/6OX2/+jl9v/o5Pb/6OT2/+jk9v/o5fb/6OT2/+jk9v/o5PZmAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA6OT2Zujk9v/o5fb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk 9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5fb/6OX2/+jl9v/o5Pb/6OT2/+jk 9v/o5Pb/6OT2/+jk9v/o5fb/6OT2/+jk9v/o5Pb/6OT2/+jk9v/o5fb/6OX2/+jk9v/o5fb/6OX2/+jk 9v/o5Pb/6OX2/+jk9v/o5Pb/6OT2/+jk9v/o5Pb/6OT2/+jl9v/o5Pb/6OT2/+jl9v/o5fb/6OX2/+jl 9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl 9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl 9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl 9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9mYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo5fZm6OX2/+jl9v/o5fb/6OX2/+jl 9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl 9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl 9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5fb/6OX2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2ZgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAOjl9mbo5fb/6OX2/+jl9v/o5fb/6OX2/+jl9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm9v/o5vb/6Ob2/+jm 9v/o5vb/6Ob2/+jm9v/p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/dmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6Ob2Zujm9v/o5vb/6Ob2/+jm 9v/o5vb/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 92YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADp5/cQ6ef3y+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn 9//p5/f/6ef3/+nn9//p5/f/6ef3/+nn9//p5/f/6ef3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6PfL6ej3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADp5/dm6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6ej3/+no 9//p6Pf/6ej3/+no9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 92YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOno9xbp6Pfb6ej3/+no9//p6Pf/6ej3/+no9//p6Pf/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vfb6ur3FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOnp 9yzp6ffl6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//p6ff/6en3/+np9//q6vf/6ur3/+rq 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6uv45err +CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOrq9zLq6vf/6ur3/+rq9//q6vf/6ur3/+rq 9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6ur3/+rq9//q6vf/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/gyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA6uv4Dunq96Pq6vf96uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/f96er3o+rr +A4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOnq94Pq6/fX6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz31+nr94MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOrr+CDq6/jl6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr +P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rr+P/q6/j/6uv4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+OXq7PggAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOrs +Czp7PiF6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs +P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/q7Pj/6uz4/+rs+P/r7fn/6+35/+vt +f/r7fn/6+35/+vt+f/r7fn/6+35/+vt+f/r7fn/6+35/+vt+f/r7fn/6+35/+vt+f/r7fn/6+35/+vt +f/r7fn/6+35/+vt+f/r7fn/6+35/+vt+f/r7fn/6+35/+vt+f/r7fn/6+35/+vt+f/r7fn/6+35/+vt +f/r7fn/6+35/+vt+f/r7fiF6+35LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOrs+ALq7Pge6uz4oers+MPq7PjD6uz4w+rs +MPq7PjD6uz4w+rs+MPq7PjD6uz4w+rs+MPq7PjD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt +cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt +cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt +cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt +cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt +cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fnD6+35w+vt+cPr7fmh6+35Huvt+QIAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////gAAAAAAAAAAAAAAf///// gAAAAAAAAAAAAAAB/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAA H///+AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAB///wAAAAAAAAAAA AAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA AAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///A AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA A///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA AAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA AAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///A AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA A///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA AAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA AAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///A AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA A///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA AAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA AAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///A AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA A///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA AAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA AAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///A AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA A///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA AAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA AAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///A AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA A///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA AAAAAAP//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///4AAAAAAAAAAAAAAAAAf///AAAAAA AAAAAAAAAAAP///4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAA///// AAAAAAAAAAAAAAAA/////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf///////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////8= ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/GammaForm.Designer.cs ================================================ namespace TestDemo { partial class GammaForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 13; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 59; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 1; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(47, 12); this.label1.TabIndex = 1; this.label1.Text = "Gamma:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "1"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // GammaForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "GammaForm"; this.Text = "Gamma调节"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/GammaForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class GammaForm : CCWin.Skin_Mac { public GammaForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.GammaCorrectProcess(curBitmap, gamma); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int gamma = 1; public int getGamma { get { return gamma; } } private void skinButton1_Click(object sender, EventArgs e) { gamma = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { gamma = skinHScrollBar1.Value; textBox1.Text = gamma.ToString(); pictureBox1.Image = (Image)zPhoto.GammaCorrectProcess(curBitmap, gamma); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/GammaForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/GaussBlurForm.Designer.cs ================================================ namespace TestDemo { partial class GaussBlurForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 13; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 509; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 150; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "15"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // GaussBlurForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "GaussBlurForm"; this.Text = "高斯模糊"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/GaussBlurForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class GaussBlurForm : CCWin.Skin_Mac { public GaussBlurForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 300 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 300 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.GaussFilterProcess(curBitmap, (float)radius); } } private Bitmap curBitmap = null; private double radius = 15.0; private ZPhotoEngineDll zPhoto = null; public double getRadius { get { return radius; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = (double)skinHScrollBar1.Value / 10.0; textBox1.Text = radius.ToString(); pictureBox1.Image = (Image)zPhoto.GaussFilterProcess(curBitmap, (float)radius); } } private void skinButton1_Click(object sender, EventArgs e) { radius = (double)skinHScrollBar1.Value / 10.0; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/GaussBlurForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HSLForm.Designer.cs ================================================ namespace TestDemo { partial class HSLForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.hScrollBar1 = new System.Windows.Forms.HScrollBar(); this.hScrollBar2 = new System.Windows.Forms.HScrollBar(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.hScrollBar3 = new System.Windows.Forms.HScrollBar(); this.textBox3 = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(209, 43); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(190, 190); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 5; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.hScrollBar3); this.groupBox1.Controls.Add(this.textBox3); this.groupBox1.Controls.Add(this.label3); this.groupBox1.Controls.Add(this.hScrollBar1); this.groupBox1.Controls.Add(this.hScrollBar2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Location = new System.Drawing.Point(9, 36); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 199); this.groupBox1.TabIndex = 4; this.groupBox1.TabStop = false; // // hScrollBar1 // this.hScrollBar1.Location = new System.Drawing.Point(11, 40); this.hScrollBar1.Maximum = 189; this.hScrollBar1.Minimum = -180; this.hScrollBar1.Name = "hScrollBar1"; this.hScrollBar1.Size = new System.Drawing.Size(164, 17); this.hScrollBar1.TabIndex = 4; this.hScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar1_Scroll); // // hScrollBar2 // this.hScrollBar2.Location = new System.Drawing.Point(11, 93); this.hScrollBar2.Maximum = 109; this.hScrollBar2.Minimum = -100; this.hScrollBar2.Name = "hScrollBar2"; this.hScrollBar2.Size = new System.Drawing.Size(164, 17); this.hScrollBar2.TabIndex = 5; this.hScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar2_Scroll); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(15, 17); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 4; this.label1.Text = "色相(H):"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(15, 68); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(71, 12); this.label2.TabIndex = 5; this.label2.Text = "饱和度(A):"; // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(53, 170); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // textBox2 // this.textBox2.Location = new System.Drawing.Point(75, 65); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(65, 21); this.textBox2.TabIndex = 7; this.textBox2.Text = "0"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(75, 14); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(65, 21); this.textBox1.TabIndex = 6; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // hScrollBar3 // this.hScrollBar3.Location = new System.Drawing.Point(11, 145); this.hScrollBar3.Maximum = 109; this.hScrollBar3.Minimum = -100; this.hScrollBar3.Name = "hScrollBar3"; this.hScrollBar3.Size = new System.Drawing.Size(164, 17); this.hScrollBar3.TabIndex = 9; this.hScrollBar3.Scroll += new System.Windows.Forms.ScrollEventHandler(this.hScrollBar3_Scroll); // // textBox3 // this.textBox3.Location = new System.Drawing.Point(75, 117); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(65, 21); this.textBox3.TabIndex = 10; this.textBox3.Text = "0"; this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(15, 120); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(59, 12); this.label3.TabIndex = 8; this.label3.Text = "明度(I):"; // // HSLForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(410, 243); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(410, 243); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(410, 243); this.Name = "HSLForm"; this.Text = "色相/饱和度"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.HScrollBar hScrollBar1; private System.Windows.Forms.HScrollBar hScrollBar2; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.HScrollBar hScrollBar3; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HSLForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class HSLForm : CCWin.Skin_Mac { public HSLForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int hue = 0; private int satruation = 0; private int lightness = 0; private Bitmap tmp = null; public int getHue { get { return hue; } } public int getSaturation { get { return satruation; } } public int getLightness { get { return lightness; } } private void skinButton1_Click(object sender, EventArgs e) { hue = hScrollBar1.Value; satruation = hScrollBar2.Value; lightness = hScrollBar3.Value; this.DialogResult = DialogResult.OK; this.Close(); } //hue private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { textBox1.Text = hScrollBar1.Value.ToString(); hue = hScrollBar1.Value; satruation = hScrollBar2.Value; lightness = hScrollBar3.Value; tmp = zPhoto.HueSaturationAdjust(curBitmap, hue, satruation); pictureBox1.Image = (Image)zPhoto.LightnessAdjustProcess(tmp, lightness); } } //saturation private void hScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { textBox2.Text = hScrollBar2.Value.ToString(); hue = hScrollBar1.Value; satruation = hScrollBar2.Value; lightness = hScrollBar3.Value; tmp = zPhoto.HueSaturationAdjust(curBitmap, hue, satruation); pictureBox1.Image = (Image)zPhoto.LightnessAdjustProcess(tmp, lightness); } } //lightness private void hScrollBar3_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { textBox3.Text = hScrollBar3.Value.ToString(); hue = hScrollBar1.Value; satruation = hScrollBar2.Value; lightness = hScrollBar3.Value; tmp = zPhoto.HueSaturationAdjust(curBitmap, hue, satruation); pictureBox1.Image = (Image)zPhoto.LightnessAdjustProcess(tmp, lightness); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HSLForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HighlightShadowForm.Designer.cs ================================================ namespace TestDemo { partial class HighlightShadowForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 7; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 6; this.groupBox1.TabStop = false; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 83); this.skinHScrollBar2.Maximum = 109; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 62); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(59, 12); this.label2.TabIndex = 5; this.label2.Text = "高光(U):"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "0"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 36); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "阴影(A):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 12); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // HighlightShadowForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "HighlightShadowForm"; this.Text = "阴影/高光调节"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HighlightShadowForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class HighlightShadowForm : CCWin.Skin_Mac { public HighlightShadowForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int shadow = 0; private int highlight = 0; public int getShadow { get { return shadow; } } public int getHighlight { get { return highlight; } } private Bitmap tmp = null; //阴影 private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { shadow = skinHScrollBar1.Value; highlight = skinHScrollBar2.Value; textBox1.Text = shadow.ToString(); textBox2.Text = highlight.ToString(); tmp = zPhoto.ShadowAdjust(curBitmap, shadow, 100); pictureBox1.Image = (Image)zPhoto.HighlightAdjust(tmp, highlight, 100); } } //高光 private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { shadow = skinHScrollBar1.Value; highlight = skinHScrollBar2.Value; textBox1.Text = shadow.ToString(); textBox2.Text = highlight.ToString(); pictureBox1.Image = (Image)zPhoto.HighlightShadowPreciseAdjustProcess(curBitmap, highlight, shadow); //tmp = zPhoto.ShadowAdjust(curBitmap, shadow, 100); //pictureBox1.Image = (Image)zPhoto.HighlightAdjust(tmp, highlight, 100); } } private void skinButton1_Click(object sender, EventArgs e) { shadow = skinHScrollBar1.Value; highlight = skinHScrollBar2.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HighlightShadowForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HighpassForm.Designer.cs ================================================ namespace TestDemo { partial class HighpassForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 9; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 8; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 509; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 15; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "1.5"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // HighpassForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "HighpassForm"; this.Text = "高反差保留"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HighpassForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class HighpassForm : CCWin.Skin_Mac { public HighpassForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 300 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 300 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.HighPassProcess(curBitmap, (float)radius); } } private Bitmap curBitmap = null; private double radius = 1.5; private ZPhotoEngineDll zPhoto = null; public double getRadius { get { return radius; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = (double)skinHScrollBar1.Value / 10.0; textBox1.Text = radius.ToString(); pictureBox1.Image = (Image)zPhoto.HighPassProcess(curBitmap, (float)radius); } } private void skinButton1_Click(object sender, EventArgs e) { radius = (double)skinHScrollBar1.Value / 10.0; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HighpassForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HistagramForm.Designer.cs ================================================ namespace TestDemo { partial class HistagramForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.label1 = new System.Windows.Forms.Label(); this.comboBox1 = new System.Windows.Forms.ComboBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(19, 86); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(256, 150); this.pictureBox1.TabIndex = 7; this.pictureBox1.TabStop = false; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(47, 50); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(53, 12); this.label1.TabIndex = 6; this.label1.Text = "通道(C):"; // // comboBox1 // this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { "RGB", "红", "绿", "蓝"}); this.comboBox1.Location = new System.Drawing.Point(115, 47); this.comboBox1.Name = "comboBox1"; this.comboBox1.Size = new System.Drawing.Size(121, 20); this.comboBox1.TabIndex = 5; this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); // // HistagramForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(295, 250); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.label1); this.Controls.Add(this.comboBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(295, 250); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(295, 250); this.Name = "HistagramForm"; this.Text = "直方图"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Label label1; private System.Windows.Forms.ComboBox comboBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HistagramForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; namespace TestDemo { unsafe public partial class HistagramForm : CCWin.Skin_Mac { public HistagramForm(string path) { InitializeComponent(); comboBox1.SelectedIndex = 0; this.DoubleBuffered = true; curBitmap = new Bitmap(path); DrawHistogram(curBitmap, 0); } private Bitmap curBitmap = null; private void DrawHistogram(Bitmap tmp, int channel) { if (tmp != null) { int w = tmp.Width; int h = tmp.Height; int[] gray = new int[256]; int[] r = new int[256]; int[] g = new int[256]; int[] b = new int[256]; BitmapData srcData = tmp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); byte* p = (byte*)srcData.Scan0; int offset = srcData.Stride - w * 4; for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { gray[(int)((p[0] + p[1] + p[2]) / 3)]++; b[p[0]]++; g[p[1]]++; r[p[2]]++; p += 4; } p += offset; } tmp.UnlockBits(srcData); Bitmap grayHisBmp = new Bitmap(System.Windows.Forms.Application.StartupPath + "\\hisBmp.jpg"); Graphics grayGra = Graphics.FromImage(grayHisBmp); Point start; Point end; Pen p0 = new Pen(Color.Black, 1); Pen p1 = new Pen(Color.Red, 1); Pen p2 = new Pen(Color.Green, 1); Pen p3 = new Pen(Color.Blue, 1); int grayMax = gray.Max(); int rMax = r.Max(); int gMax = g.Max(); int bMax = b.Max(); switch (channel) { case 0: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - gray[i] * 150 / (grayMax)); grayGra.DrawLine(p0, start, end); } break; case 1: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - r[i] * 150 / (rMax)); grayGra.DrawLine(p1, start, end); } break; case 2: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - g[i] * 150 / (gMax)); grayGra.DrawLine(p2, start, end); } break; case 3: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - b[i] * 150 / (bMax)); grayGra.DrawLine(p3, start, end); } break; } grayGra.Dispose(); pictureBox1.Image = (Image)grayHisBmp; } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { DrawHistogram(curBitmap, comboBox1.SelectedIndex); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/HistagramForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ImageProcessId.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestDemo { class ImageProcessId { public const int ID_NONE = 0; public const int ID_ROTATE = 1; //旋转 public const int ID_ZOOM = 2; //缩放 public const int ID_HMIRROR = 3; //水平翻转 public const int ID_VMIRROR = 4; //垂直翻转 public const int ID_AUTO_COLORGRADATION = 5; //自动色调 public const int ID_AUTO_CONTRAST = 6; //自动对比度 public const int ID_HISTAGRAMEQUALIZE = 7; //色调均化 public const int ID_BRIGHTCONTRAST = 8; //亮度对比度 public const int ID_COLORLEVEL = 9; //色阶 public const int ID_HSL = 10; //色相饱和度亮度 public const int ID_COLORBALANCE = 11; //色彩平衡 public const int ID_INVERT = 12; //反相 public const int ID_POSTERIZE = 13; //色调分离 public const int ID_THRESHOLD = 14; //阈值 public const int ID_DESATURATE = 15; //去色 public const int ID_HIGHLIGHTSHADOW = 16; //高光阴影 public const int ID_EXPOSURE = 17; //曝光 public const int ID_COLORTEMPEATURE = 18; //色温 public const int ID_FINDEDGES = 19; //查找边缘 public const int ID_RELIEF = 20; //浮雕 public const int ID_DIFUSSION = 21; //扩散 public const int ID_OVEREXPOSURE = 22; //曝光过度 public const int ID_SURFACEBLUR = 23; //表面模糊 public const int ID_MOTIONBLUR = 24; //动感模糊 public const int ID_MEANBLUR = 25; //均值模糊 public const int ID_GAUSSBLUR = 26; //高斯模糊 public const int ID_RADIAL = 27; //旋转模糊 public const int ID_ZOOMBLUR = 28; //缩放模糊 public const int ID_MEAN = 29; //平均 public const int ID_MOSCIA = 30; //马赛克 public const int ID_FRAGMENT = 31; //碎片 public const int ID_HIGHPASS = 32; //高反差保留 public const int ID_USM = 33; //USM锐化 public const int ID_CHANNELMIXER = 34; //通道混合器 public const int ID_BLACKWHITE = 35; //黑白 public const int ID_GAMMA = 36; //Gamma public const int ID_MEDIANFILTER = 37; //中间色 public const int ID_MAXFILTER = 38; //最大值 public const int ID_MINFILTER = 39; //最小值 public const int ID_NATURALSATURATION = 40; //自然饱和度 public const int ID_IMAGEWARP_WAVE = 41; //Wave变形 public const int ID_SMARTBLUR = 42; //Smart blur public const int ID_ANISOTROPICFILTER = 43; //Anisotropic filter public const int ID_DISPLACEMENTFILTER = 44; //Displacement filter public const int ID_NOISEEFFECT = 45; //Noise effect } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/LevelForm.Designer.cs ================================================ namespace TestDemo { partial class LevelForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.comboBox1 = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox3 = new System.Windows.Forms.TextBox(); this.textBox4 = new System.Windows.Forms.TextBox(); this.textBox5 = new System.Windows.Forms.TextBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(105, 316); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 0; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // comboBox1 // this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { "RGB", "红", "绿", "蓝"}); this.comboBox1.Location = new System.Drawing.Point(115, 42); this.comboBox1.Name = "comboBox1"; this.comboBox1.Size = new System.Drawing.Size(121, 20); this.comboBox1.TabIndex = 1; this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(47, 45); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(53, 12); this.label1.TabIndex = 2; this.label1.Text = "通道(C):"; // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(19, 69); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(256, 150); this.pictureBox1.TabIndex = 3; this.pictureBox1.TabStop = false; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(11, 23); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(65, 12); this.label2.TabIndex = 4; this.label2.Text = "输入色阶:"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(11, 57); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(65, 12); this.label3.TabIndex = 5; this.label3.Text = "输出色阶:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(82, 20); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(49, 21); this.textBox1.TabIndex = 6; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); // // textBox2 // this.textBox2.Location = new System.Drawing.Point(139, 20); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(49, 21); this.textBox2.TabIndex = 7; this.textBox2.Text = "1.00"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged); // // textBox3 // this.textBox3.Location = new System.Drawing.Point(196, 20); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(49, 21); this.textBox3.TabIndex = 8; this.textBox3.Text = "255"; this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.textBox3.TextChanged += new System.EventHandler(this.textBox3_TextChanged); // // textBox4 // this.textBox4.Location = new System.Drawing.Point(82, 54); this.textBox4.Name = "textBox4"; this.textBox4.Size = new System.Drawing.Size(49, 21); this.textBox4.TabIndex = 9; this.textBox4.Text = "0"; this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.textBox4.TextChanged += new System.EventHandler(this.textBox4_TextChanged); // // textBox5 // this.textBox5.Location = new System.Drawing.Point(196, 54); this.textBox5.Name = "textBox5"; this.textBox5.Size = new System.Drawing.Size(49, 21); this.textBox5.TabIndex = 10; this.textBox5.Text = "255"; this.textBox5.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.textBox5.TextChanged += new System.EventHandler(this.textBox5_TextChanged); // // groupBox1 // this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Controls.Add(this.textBox5); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox4); this.groupBox1.Controls.Add(this.label3); this.groupBox1.Controls.Add(this.textBox3); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Location = new System.Drawing.Point(19, 227); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(256, 87); this.groupBox1.TabIndex = 11; this.groupBox1.TabStop = false; this.groupBox1.Text = "色阶设置"; // // LevelForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(295, 350); this.Controls.Add(this.groupBox1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.label1); this.Controls.Add(this.comboBox1); this.Controls.Add(this.skinButton1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(295, 350); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(295, 350); this.Name = "LevelForm"; this.Text = "色阶"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.Label label1; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.TextBox textBox4; private System.Windows.Forms.TextBox textBox5; private System.Windows.Forms.GroupBox groupBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/LevelForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; namespace TestDemo { unsafe public partial class LevelForm : CCWin.Skin_Mac { public LevelForm(string path) { InitializeComponent(); comboBox1.SelectedIndex = 0; this.DoubleBuffered = true; Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); DrawHistogram(curBitmap, 0); } } private Bitmap curBitmap = null; private int leftInput = 0; private double midInput = 0; private int rightInput = 255; private int leftOutput = 0; private int rightOutput = 255; private int channel = 0; public int getChannel { get { return channel; } } public int getLeftInput { get { return leftInput; } } public double getMidInput { get { return midInput; } } public int getRightInput { get { return rightInput; } } public int getLeftOutput { get { return leftOutput; } } public int getRightOutput { get { return rightOutput; } } private void skinButton1_Click(object sender, EventArgs e) { leftInput = Convert.ToInt32(textBox1.Text); midInput = Convert.ToDouble(textBox2.Text); rightInput = Convert.ToInt32(textBox3.Text); leftOutput = Convert.ToInt32(textBox4.Text); rightOutput = Convert.ToInt32(textBox5.Text); channel = comboBox1.SelectedIndex; this.DialogResult = DialogResult.OK; this.Close(); } private void textBox1_TextChanged(object sender, EventArgs e) { try { leftInput = Convert.ToInt32(textBox1.Text); rightInput = Convert.ToInt32(textBox3.Text); rightInput = Math.Min(255, Math.Max(0, rightInput)); leftInput = Math.Min(255, Math.Max(0, leftInput)); if (leftInput > rightOutput - 2) leftInput = rightOutput - 2; textBox1.Text = leftInput.ToString(); textBox3.Text = rightInput.ToString(); } catch { return; } } private void textBox3_TextChanged(object sender, EventArgs e) { try{ leftInput = Convert.ToInt32(textBox1.Text); rightInput = Convert.ToInt32(textBox3.Text); rightInput = Math.Min(255, Math.Max(0, rightInput)); leftInput = Math.Min(255, Math.Max(0, leftInput)); if (leftInput > rightOutput - 2) rightOutput = leftInput + 2; textBox1.Text = leftInput.ToString(); textBox3.Text = rightInput.ToString(); } catch { return; } } private void DrawHistogram(Bitmap tmp, int channel) { if (tmp != null) { int w = tmp.Width; int h = tmp.Height; int[] gray = new int[256]; int[] r = new int[256]; int[] g = new int[256]; int[] b = new int[256]; BitmapData srcData = tmp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); byte* p = (byte*)srcData.Scan0; int offset = srcData.Stride - w * 4; for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { gray[(int)((p[0] + p[1] + p[2]) / 3)]++; b[p[0]]++; g[p[1]]++; r[p[2]]++; p += 4; } p += offset; } tmp.UnlockBits(srcData); Bitmap grayHisBmp = new Bitmap(System.Windows.Forms.Application.StartupPath + "\\hisBmp.jpg"); Graphics grayGra = Graphics.FromImage(grayHisBmp); Point start; Point end; Pen p0 = new Pen(Color.Black, 1); Pen p1 = new Pen(Color.Red, 1); Pen p2 = new Pen(Color.Green, 1); Pen p3 = new Pen(Color.Blue, 1); int grayMax = gray.Max(); int rMax = r.Max(); int gMax = g.Max(); int bMax = b.Max(); switch (channel) { case 0: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - gray[i] * 150 / (grayMax)); grayGra.DrawLine(p0, start, end); } break; case 1: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - r[i] * 150 / (rMax)); grayGra.DrawLine(p0, start, end); } break; case 2: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - g[i] * 150 / (gMax)); grayGra.DrawLine(p0, start, end); } break; case 3: for (int i = 0; i < 256; i++) { start = new Point(i, 0); end = new Point(i, 150 - b[i] * 150 / (bMax)); grayGra.DrawLine(p0, start, end); } break; } grayGra.Dispose(); pictureBox1.Image = (Image)grayHisBmp; } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { DrawHistogram(curBitmap, comboBox1.SelectedIndex); } private void textBox2_TextChanged(object sender, EventArgs e) { //string t = textBox2.Text.ToString(); //try{ // midInput = Convert.ToDouble(t); //midInput = Math.Min(9.99, Math .Max(midInput,0)); //textBox2.Text = midInput.ToString(); //} //catch { return; } } private void textBox4_TextChanged(object sender, EventArgs e) { try{ leftOutput = Convert.ToInt32(textBox4.Text); leftOutput = Math.Min(255, Math.Max(leftOutput, 0)); textBox4.Text = leftOutput.ToString(); } catch { return; } } private void textBox5_TextChanged(object sender, EventArgs e) { try { rightOutput = Convert.ToInt32(textBox5.Text); rightOutput = Math.Min(255, Math.Max(rightOutput, 0)); textBox5.Text = rightOutput.ToString(); } catch { return; } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/LevelForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MaxForm.Designer.cs ================================================ namespace TestDemo { partial class MaxForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 15; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 14; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 20; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "20"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // MaxForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "MaxForm"; this.Text = "最大值"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MaxForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class MaxForm : CCWin.Skin_Mac { public MaxForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.MaxFilterProcess(curBitmap, radius); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int radius = 20; public int getRadius { get { return radius; } } private void skinButton1_Click(object sender, EventArgs e) { radius = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); pictureBox1.Image = (Image)zPhoto.MaxFilterProcess(curBitmap, radius); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MaxForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MeanBlurForm.Designer.cs ================================================ namespace TestDemo { partial class MeanBlurForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 11; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 10; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 20; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "20"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // MeanBlurForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "MeanBlurForm"; this.Text = "均值模糊"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MeanBlurForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class MeanBlurForm : CCWin.Skin_Mac { public MeanBlurForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.MeanFilterProcess(curBitmap, radius); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int radius = 20; public int getRadius { get { return radius; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); pictureBox1.Image = (Image)zPhoto.MeanFilterProcess(curBitmap, radius); } } private void skinButton1_Click(object sender, EventArgs e) { radius = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MeanBlurForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MedianForm.Designer.cs ================================================ namespace TestDemo { partial class MedianForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 13; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 20; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "20"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // MedianForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MiniSize = new System.Drawing.Size(371, 196); this.Name = "MedianForm"; this.Text = "中间色"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MedianForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class MedianForm : CCWin.Skin_Mac { public MedianForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.MedianFilterProcess(curBitmap, radius); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int radius = 20; public int getRadius { get { return radius; } } private void skinButton1_Click(object sender, EventArgs e) { radius = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); pictureBox1.Image = (Image)zPhoto.MedianFilterProcess(curBitmap, radius); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MedianForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MessageForm.Designer.cs ================================================ namespace TestDemo { partial class MessageForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.messageBtn = new CCWin.SkinControl.SkinButton(); this.skinLabel1 = new CCWin.SkinControl.SkinLabel(); this.SuspendLayout(); // // messageBtn // this.messageBtn.BackColor = System.Drawing.Color.Transparent; this.messageBtn.ControlState = CCWin.SkinClass.ControlState.Normal; this.messageBtn.DownBack = null; this.messageBtn.Location = new System.Drawing.Point(115, 99); this.messageBtn.MouseBack = null; this.messageBtn.Name = "messageBtn"; this.messageBtn.NormlBack = null; this.messageBtn.Size = new System.Drawing.Size(75, 23); this.messageBtn.TabIndex = 0; this.messageBtn.Text = "确定"; this.messageBtn.UseVisualStyleBackColor = false; this.messageBtn.Click += new System.EventHandler(this.messageBtn_Click); // // skinLabel1 // this.skinLabel1.BackColor = System.Drawing.Color.Transparent; this.skinLabel1.BorderColor = System.Drawing.Color.White; this.skinLabel1.Font = new System.Drawing.Font("Microsoft YaHei", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.skinLabel1.Location = new System.Drawing.Point(19, 60); this.skinLabel1.Name = "skinLabel1"; this.skinLabel1.Size = new System.Drawing.Size(261, 23); this.skinLabel1.TabIndex = 1; this.skinLabel1.Text = "Error"; this.skinLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // MessageForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(295, 142); this.Controls.Add(this.skinLabel1); this.Controls.Add(this.messageBtn); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(295, 142); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(295, 142); this.Name = "MessageForm"; this.Text = "Message"; this.TitleCenter = false; this.ResumeLayout(false); } #endregion private CCWin.SkinControl.SkinButton messageBtn; private CCWin.SkinControl.SkinLabel skinLabel1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MessageForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CCWin; namespace TestDemo { public partial class MessageForm : Skin_Mac { public MessageForm(string msg) { InitializeComponent(); this.DoubleBuffered = true; skinLabel1.Text = msg.ToString(); } private void messageBtn_Click(object sender, EventArgs e) { this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MessageForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MinForm.Designer.cs ================================================ namespace TestDemo { partial class MinForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 15; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 14; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 20; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "20"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // MinForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "MinForm"; this.Text = "最小值"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MinForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class MinForm : CCWin.Skin_Mac { public MinForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.MinFilterProcess(curBitmap, radius); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int radius = 20; public int getRadius { get { return radius; } } private void skinButton1_Click(object sender, EventArgs e) { radius = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); pictureBox1.Image = (Image)zPhoto.MinFilterProcess(curBitmap, radius); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MinForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MosciaForm.Designer.cs ================================================ namespace TestDemo { partial class MosciaForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 15; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 14; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 6; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 6; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 1; this.label1.Text = "数量:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "6"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // MosciaForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "MosciaForm"; this.Text = "马赛克"; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MosciaForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class MosciaForm : CCWin.Skin_Mac { public MosciaForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.MosaicProcess(curBitmap, blocksize); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int blocksize = 6; public int getBlocksize { get { return blocksize; } } private void skinButton1_Click(object sender, EventArgs e) { blocksize = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { blocksize = skinHScrollBar1.Value; textBox1.Text = blocksize.ToString(); pictureBox1.Image = (Image)zPhoto.MosaicProcess(curBitmap, blocksize); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MosciaForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MotionBlurForm.Designer.cs ================================================ namespace TestDemo { partial class MotionBlurForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 11; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(6, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 10; this.groupBox1.TabStop = false; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 83); this.skinHScrollBar2.Maximum = 209; this.skinHScrollBar2.Minimum = 1; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Value = 14; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 62); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(59, 12); this.label2.TabIndex = 5; this.label2.Text = "距离(D):"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "14"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 36); this.skinHScrollBar1.Maximum = 369; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 90; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "角度(A):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 12); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "90"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // MotionBlurForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "MotionBlurForm"; this.Text = "动感模糊"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MotionBlurForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class MotionBlurForm : CCWin.Skin_Mac { public MotionBlurForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.MotionBlur(curBitmap, angle, distance); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int angle = 90; private int distance = 14; public int getAngle { get { return angle; } } public int getDistance { get { return distance; } } //angle private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { angle = skinHScrollBar1.Value; distance = skinHScrollBar2.Value; textBox1.Text = angle.ToString(); textBox2.Text = distance.ToString(); pictureBox1.Image = (Image)zPhoto.MotionBlur(curBitmap, angle, distance); } } //distance private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { angle = skinHScrollBar1.Value; distance = skinHScrollBar2.Value; textBox1.Text = angle.ToString(); textBox2.Text = distance.ToString(); pictureBox1.Image = (Image)zPhoto.MotionBlur(curBitmap, angle, distance); } } private void skinButton1_Click(object sender, EventArgs e) { angle = skinHScrollBar1.Value; distance = skinHScrollBar2.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/MotionBlurForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/NSaturationForm.Designer.cs ================================================ namespace TestDemo { partial class NSaturationForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(210, 39); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 15; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(10, 36); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 14; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Minimum = -100; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(22, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(77, 12); this.label1.TabIndex = 1; this.label1.Text = "Saturation:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // NSaturationForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximumSize = new System.Drawing.Size(371, 196); this.MaxSize = new System.Drawing.Size(0, 0); this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "NSaturationForm"; this.Text = "自然饱和度"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/NSaturationForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class NSaturationForm : CCWin.Skin_Mac { public NSaturationForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.NaturalSaturationProcess(curBitmap, saturation); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int saturation = 0; public int getSaturation { get { return saturation; } } private void skinButton1_Click(object sender, EventArgs e) { saturation = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { saturation = skinHScrollBar1.Value; textBox1.Text = saturation.ToString(); pictureBox1.Image = (Image)zPhoto.NaturalSaturationProcess(curBitmap, saturation); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/NSaturationForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/PosterizeForm.Designer.cs ================================================ namespace TestDemo { partial class PosterizeForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 3; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 2; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 264; this.skinHScrollBar1.Minimum = 2; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 2; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "色阶(L):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "2"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // PosterizeForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "PosterizeForm"; this.Text = "色调分离"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/PosterizeForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class PosterizeForm : CCWin.Skin_Mac { public PosterizeForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.Posterize(curBitmap, skinHScrollBar1.Value); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int levelNum = 2; public int getLevelNum { get { return levelNum; } } private void skinButton1_Click(object sender, EventArgs e) { levelNum = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { textBox1.Text = skinHScrollBar1.Value.ToString(); pictureBox1.Image = (Image)zPhoto.Posterize(curBitmap, skinHScrollBar1.Value); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/PosterizeForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Program.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace TestDemo { static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("TestDemo")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("TestDemo")] [assembly: AssemblyCopyright("Copyright © 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("5003537c-d376-4240-b595-84c59c748fdd")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Properties/Resources.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace TestDemo.Properties { using System; /// /// A strongly-typed resource class, for looking up localized strings, etc. /// // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestDemo.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Properties/Resources.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Properties/Settings.Designer.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace TestDemo.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { return defaultInstance; } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/Properties/Settings.settings ================================================  ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/RadialBlurForm.Designer.cs ================================================ namespace TestDemo { partial class RadialBlurForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 15; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 14; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 10; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "数量(A):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "10"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // RadialBlurForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "RadialBlurForm"; this.Text = "旋转模糊"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/RadialBlurForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class RadialBlurForm : CCWin.Skin_Mac { public RadialBlurForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.RadialBlurProcess(curBitmap, amount); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int amount = 10; public int getAmount { get { return amount; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { amount = skinHScrollBar1.Value; textBox1.Text = amount.ToString(); pictureBox1.Image = (Image)zPhoto.RadialBlurProcess(curBitmap, amount); } } private void skinButton1_Click(object sender, EventArgs e) { amount = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/RadialBlurForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ReliefForm.Designer.cs ================================================ namespace TestDemo { partial class ReliefForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 11; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 83); this.skinHScrollBar2.Maximum = 509; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Value = 500; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 62); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(41, 12); this.label2.TabIndex = 5; this.label2.Text = "数量:"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "500"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 36); this.skinHScrollBar1.Maximum = 369; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 90; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 1; this.label1.Text = "角度:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 12); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "90"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // ReliefForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.groupBox1); this.Controls.Add(this.pictureBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "ReliefForm"; this.Text = "浮雕"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ReliefForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class ReliefForm : CCWin.Skin_Mac { public ReliefForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.Relief(curBitmap, angle, amount); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int angle = 90; private int amount = 500; public int getAngle { get { return angle; } } public int getAmount { get { return amount; } } //角度 private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { angle = skinHScrollBar1.Value; amount = skinHScrollBar2.Value; textBox1.Text = angle.ToString(); textBox2.Text = amount.ToString(); pictureBox1.Image = (Image)zPhoto.Relief(curBitmap, angle, amount); } } //数量 private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { angle = skinHScrollBar1.Value; amount = skinHScrollBar2.Value; textBox1.Text = angle.ToString(); textBox2.Text = amount.ToString(); pictureBox1.Image = (Image)zPhoto.Relief(curBitmap, angle, amount); } } private void skinButton1_Click(object sender, EventArgs e) { angle = skinHScrollBar1.Value; amount = skinHScrollBar2.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ReliefForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/RotateForm.Designer.cs ================================================ namespace TestDemo { partial class RotateForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.groupBox1 = new System.Windows.Forms.GroupBox(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 0; this.groupBox1.TabStop = false; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 1; this.label1.Text = "角度:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 1; this.pictureBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 369; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // RotateForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "RotateForm"; this.Text = "图像旋转"; this.TitleCenter = false; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.PictureBox pictureBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/RotateForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class RotateForm : CCWin.Skin_Mac { public RotateForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; } } private ZPhotoEngineDll zPhoto = null; private int degree = 0; private Bitmap curBitmap = null; public int getDegree { get { return degree; } } private void skinButton1_Click(object sender, EventArgs e) { degree = Convert.ToInt32(textBox1.Text); this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { textBox1.Text = skinHScrollBar1.Value.ToString(); pictureBox1.Image = (Image)zPhoto.TransformRotation(curBitmap, skinHScrollBar1.Value, 1, 0); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/RotateForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/SmartBlurForm.Designer.cs ================================================ namespace TestDemo { partial class SmartBlurForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 11; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(6, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 10; this.groupBox1.TabStop = false; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 83); this.skinHScrollBar2.Maximum = 264; this.skinHScrollBar2.Minimum = 2; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Value = 25; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 62); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(59, 12); this.label2.TabIndex = 5; this.label2.Text = "阈值(T):"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "25"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 36); this.skinHScrollBar1.Maximum = 19; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 3; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 12); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "3"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // SmartBlurForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.Name = "SmartBlurForm"; this.Text = "SmartBlur"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/SmartBlurForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class SmartBlurForm : CCWin.Skin_Mac { public SmartBlurForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.SmartBlurProcess(curBitmap, radius, threshold); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int radius = 3; private int threshold = 25; public int getRadius { get { return radius; } } public int getThreshld { get { return threshold; } } //radius private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { threshold = skinHScrollBar2.Value; radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); textBox2.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.SmartBlurProcess(curBitmap, radius, threshold); } } //threshold private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { threshold = skinHScrollBar2.Value; radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); textBox2.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.SmartBlurProcess(curBitmap, radius, threshold); } } private void skinButton1_Click(object sender, EventArgs e) { threshold = skinHScrollBar2.Value; radius = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/SmartBlurForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/SurfaceBlurForm.Designer.cs ================================================ namespace TestDemo { partial class SurfaceBlurForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 9; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(6, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 8; this.groupBox1.TabStop = false; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 83); this.skinHScrollBar2.Maximum = 264; this.skinHScrollBar2.Minimum = 2; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Value = 28; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 62); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(59, 12); this.label2.TabIndex = 5; this.label2.Text = "阈值(T):"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "28"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 36); this.skinHScrollBar1.Maximum = 19; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 5; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 12); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "5"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // SurfaceBlurForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "SurfaceBlurForm"; this.Text = "表面模糊"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/SurfaceBlurForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class SurfaceBlurForm : CCWin.Skin_Mac { public SurfaceBlurForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.SurfaceBlur(curBitmap, threshold, radius); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int radius = 5; private int threshold = 28; public int getRadius { get { return radius; } } public int getThreshld { get { return threshold; } } //radius private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { threshold = skinHScrollBar2.Value; radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); textBox2.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.SurfaceBlur(curBitmap, threshold, radius); } } //threshold private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { threshold = skinHScrollBar2.Value; radius = skinHScrollBar1.Value; textBox1.Text = radius.ToString(); textBox2.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.SurfaceBlur(curBitmap, threshold, radius); } } private void skinButton1_Click(object sender, EventArgs e) { threshold = skinHScrollBar2.Value; radius = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/SurfaceBlurForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/TempreatureForm.Designer.cs ================================================ namespace TestDemo { partial class TempreatureForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 9; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 8; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 59; this.skinHScrollBar1.Minimum = -50; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 1; this.label1.Text = "色温:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // TempreatureForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "TempreatureForm"; this.Text = "色温调节"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/TempreatureForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class TempreatureForm : CCWin.Skin_Mac { public TempreatureForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)curBitmap; } } private Bitmap curBitmap = null; private int tempeature = 0; private ZPhotoEngineDll zPhoto = null; public int getTempeature { get { return tempeature; } } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { tempeature = skinHScrollBar1.Value; textBox1.Text = tempeature.ToString(); pictureBox1.Image = (Image)zPhoto.ColorTemperatureProcess(curBitmap, tempeature); } } private void skinButton1_Click(object sender, EventArgs e) { tempeature = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/TempreatureForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/TestDemo.csproj ================================================  Debug x86 8.0.30703 2.0 {B42BF672-4C45-46EA-ABAC-364D7F99F507} WinExe Properties TestDemo TestDemo v4.0 512 false publish\ true Disk false Foreground 7 Days false false true 0 1.0.0.%2a false true x86 true full false bin\Debug\ DEBUG;TRACE prompt 4 true x86 pdbonly true bin\Release\ TRACE prompt 4 true 20160111094415978_easyicon_net_96.ico C:\Users\Trent\Downloads\CSkin 15.3.10.1\CSkin 4.0\CSkin.dll Form AnisotropicFilterForm.cs Form BlackWhiteForm.cs Form ChannelMixForm.cs Form ColorbalanceForm.cs Form DifussionForm.cs Form DisplacementFrom.cs Form ExposureForm.cs Form GammaForm.cs Form GaussBlurForm.cs Form HighlightShadowForm.cs Form HighpassForm.cs Form HistagramForm.cs Form LevelForm.cs Form MaxForm.cs Form MeanBlurForm.cs Form MedianForm.cs Form MinForm.cs Form MosciaForm.cs Form MotionBlurForm.cs Form NSaturationForm.cs Form PosterizeForm.cs Form FilterForm.cs Form BrightContrastForm.cs Form HSLForm.cs Form MessageForm.cs Form RadialBlurForm.cs Form ReliefForm.cs Form RotateForm.cs Form SmartBlurForm.cs Form SurfaceBlurForm.cs Form TempreatureForm.cs Form ThresholdForm.cs Form USMForm.cs Form Form1.cs Form ZoomBlurForm.cs Form ZoomForm.cs AnisotropicFilterForm.cs BlackWhiteForm.cs ChannelMixForm.cs ColorbalanceForm.cs DifussionForm.cs DisplacementFrom.cs ExposureForm.cs GammaForm.cs GaussBlurForm.cs HighlightShadowForm.cs HighpassForm.cs HistagramForm.cs LevelForm.cs MaxForm.cs MeanBlurForm.cs MedianForm.cs MinForm.cs MosciaForm.cs MotionBlurForm.cs NSaturationForm.cs PosterizeForm.cs FilterForm.cs BrightContrastForm.cs Form1.cs HSLForm.cs MessageForm.cs ResXFileCodeGenerator Resources.Designer.cs Designer True Resources.resx True RadialBlurForm.cs ReliefForm.cs RotateForm.cs SmartBlurForm.cs SurfaceBlurForm.cs TempreatureForm.cs ThresholdForm.cs USMForm.cs ZoomBlurForm.cs ZoomForm.cs SettingsSingleFileGenerator Settings.Designer.cs True Settings.settings True False Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 true False .NET Framework 3.5 SP1 Client Profile false False .NET Framework 3.5 SP1 false False Windows Installer 3.1 true ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/TestDemo.csproj.user ================================================  true publish\ en-US false ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ThresholdForm.Designer.cs ================================================ namespace TestDemo { partial class ThresholdForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 5; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 4; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 264; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 128; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "阈值(T):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "128"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // ThresholdForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "ThresholdForm"; this.Text = "阈值"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ThresholdForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class ThresholdForm : CCWin.Skin_Mac { public ThresholdForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.Threshold(curBitmap, threshold); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int threshold = 128; public int getThresold { get { return threshold; } } private void skinButton1_Click(object sender, EventArgs e) { threshold = skinHScrollBar1.Value; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { threshold = skinHScrollBar1.Value; textBox1.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.Threshold(curBitmap, threshold); } } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ThresholdForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/USMForm.Designer.cs ================================================ namespace TestDemo { partial class USMForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar3 = new CCWin.SkinControl.SkinHScrollBar(); this.label3 = new System.Windows.Forms.Label(); this.textBox3 = new System.Windows.Forms.TextBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(198, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(183, 183); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 15; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar3); this.groupBox1.Controls.Add(this.label3); this.groupBox1.Controls.Add(this.textBox3); this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(7, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 186); this.groupBox1.TabIndex = 14; this.groupBox1.TabStop = false; // // skinHScrollBar3 // this.skinHScrollBar3.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar3.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar3.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar3.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar3.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar3.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar3.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar3.Location = new System.Drawing.Point(19, 126); this.skinHScrollBar3.Maximum = 264; this.skinHScrollBar3.Name = "skinHScrollBar3"; this.skinHScrollBar3.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar3.TabIndex = 10; this.skinHScrollBar3.Value = 10; this.skinHScrollBar3.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar3_Scroll); // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(29, 105); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(59, 12); this.label3.TabIndex = 8; this.label3.Text = "阈值(T):"; // // textBox3 // this.textBox3.Location = new System.Drawing.Point(100, 102); this.textBox3.Name = "textBox3"; this.textBox3.Size = new System.Drawing.Size(57, 21); this.textBox3.TabIndex = 9; this.textBox3.Text = "10"; this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 34); this.skinHScrollBar2.Maximum = 509; this.skinHScrollBar2.Minimum = 1; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Value = 200; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 13); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(59, 12); this.label2.TabIndex = 5; this.label2.Text = "数量(A):"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 10); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "200"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 79); this.skinHScrollBar1.Maximum = 509; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 15; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(53, 152); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 58); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 55); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "1.5"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // USMForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(389, 231); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(389, 231); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(389, 231); this.Name = "USMForm"; this.Text = "USM锐化"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar3; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBox3; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/USMForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class USMForm : CCWin.Skin_Mac { public USMForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 300 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 300 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.USMProcess(curBitmap, (float)radius, amount, threshold); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private double radius = 1.5; private int amount = 200; private int threshold = 10; public double getRadius { get { return radius; } } public int getAmount { get { return amount; } } public int getThreshold { get { return threshold; } } //amount private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { amount = skinHScrollBar2.Value; radius = (double)skinHScrollBar1.Value / 10.0; threshold = skinHScrollBar3.Value; textBox2.Text = amount.ToString(); textBox1.Text = radius.ToString(); textBox3.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.USMProcess(curBitmap, (float)radius, amount, threshold); } } //radius private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { amount = skinHScrollBar2.Value; radius = (double)skinHScrollBar1.Value / 10.0; threshold = skinHScrollBar3.Value; textBox2.Text = amount.ToString(); textBox1.Text = radius.ToString(); textBox3.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.USMProcess(curBitmap, (float)radius, amount, threshold); } } //threshold private void skinHScrollBar3_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { amount = skinHScrollBar2.Value; radius = (double)skinHScrollBar1.Value / 10.0; threshold = skinHScrollBar3.Value; textBox2.Text = amount.ToString(); textBox1.Text = radius.ToString(); textBox3.Text = threshold.ToString(); pictureBox1.Image = (Image)zPhoto.USMProcess(curBitmap, (float)radius, amount, threshold); } } private void skinButton1_Click(object sender, EventArgs e) { amount = skinHScrollBar2.Value; radius = (double)skinHScrollBar1.Value / 10.0; threshold = skinHScrollBar3.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/USMForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ZPhotoEngineDll.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; namespace TestDemo { unsafe class ZPhotoEngineDll { #region PS基本变换模块 [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Desaturate(byte* srcData, int width, int height, int stride, int ratio); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Threshold(byte* srcData, int width, int height, int stride, int threshold); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Saturation(byte* srcData, int width, int height, int stride, int saturation); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_NaturalSaturation(byte* srcData, int width, int height, int stride, int saturation); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Posterize(byte* srcData, int width, int height, int stride, int clusterNum); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_OverExposure(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Lightness(byte* srcData, int width, int height, int stride, int lightness); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Invert(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_HueAndSaturation(byte* srcData, int width, int height, int stride, int hue, int saturation); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_HistagramEqualize(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Curve(byte* srcData, int width, int height, int stride, int DestChannel, int InputLeftLimit, int InputMiddle, int InputRightLimit, int OutputLeftLimit, int OutputRightLimit); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_NLinearBrightContrast(byte* srcData, int width, int height, int stride, int bright, int contrast, int threshold); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_LinearBrightContrast(byte* srcData, int width, int height, int stride, int brightness, int contrast, int threshold); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_AutoContrast(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_AutoColorGradation(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_ChannelMixProcess(byte* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Fragment(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_SurfaceBlur(byte* srcData, int width, int height, int stride, int threshold, int radius); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_RadialBlur(byte* srcData, int width, int height, int stride, int cenX, int cenY, int amount); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_ZoomBlur(byte* srcData, int width, int height, int stride, int cenX, int cenY, int sampleRadius, int amount); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Relief(byte* srcData, int width, int height, int stride, int angle, int amount); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Mosaic(byte* srcData, int width, int height, int stride, int size); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_ColorBalance(byte* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Diffusion(byte* srcData, int width, int height, int stride, int intensity); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_FastestGaussFilter(byte* srcData, int width, int height, int stride, float radius); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_HighPass(byte* srcData, int width, int height, int stride, float mRadius); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_USM(byte* srcData, int width, int height, int stride, float radius, int amount, int threshold); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_FindEdges(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Shadow(byte* srcData, int width, int height, int stride, int intensity, int ratio); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Highlight(byte* srcData, int width, int height, int stride, int intensity, int ratio); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Exposure(byte* srcData, int width, int height, int stride, int intensity); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_ColorTemperature(byte* srcData, int width, int height, int stride, int intensity); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_CalcWH(int[] inputImgSize, float angle, float scale, int transform_method, int[] outputImgSize, float[] H); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_ImageTransformation(byte* pSrc, int[] srcImgSize, byte* pDst, int[] dstImgSize, float[] H, int Interpolation_method, int transform_method); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_MotionBlur(byte* srcData, int width, int height, int stride, int angle, int distance); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Mean(byte* srcData, int width, int height, int stride); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_FastMeanFilter(byte* srcData, int width, int height ,int stride,int radius); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_ColorLevel(byte* srcData, int width, int height, int stride, int destChannel, byte inputLeftLimit, float inputMiddle, byte inputRightLimit, byte outputLeftLimit, byte outputRightLimit); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_Blackwhite(byte* srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_GammaCorrect(byte* srcData, int width, int height, int stride, int intensity); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.None, ExactSpelling = true)] private static extern void ZPHOTO_MedianFilter(byte* srcData, int width, int height, int stride, int radius); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.None, ExactSpelling = true)] private static extern void ZPHOTO_MaxFilter(byte* srcData, int width, int height, int stride, int radius); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.None, ExactSpelling = true)] private static extern void ZPHOTO_MinFilter(byte* srcData, int width, int height, int stride,int radius); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_GlowingEdges(byte* srcData, int width, int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_ImageWarpWave(byte* srcData, int width, int height, int stride, int intensity); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_HighlightShadowPrecise(byte* srcData,int width, int height, int stride, float highlight, float shadow); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_LUTFilter(byte* srcData, int width, int height, int stride, byte* Map, int ratio); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_SmartBlurFilter(byte* srcData, int width, int height, int stride, int size, int threshold); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_AnisotropicFilter(byte* srcData, int width, int height, int stride, int iter, float k, float lambda, int offset); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_DisplacementFilter(byte* srcData, int width, int height, int stride, byte* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern int ZPHOTO_NoiseEffect(byte *srcData, int width, int height, int stride, int ratio, float sigma, float phase); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #endregion #region 颜色空间转换模块 [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern void ZPHOTO_RGBToYCbCr(int R, int G, int B, ref int Y, ref int Cb, ref int Cr); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, ref int Red, ref int Green, ref int Blue); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern void ZPHOTO_RGBToLab(int Red, int Green, int Blue, ref int L, ref int A, ref int B); [DllImport("ZPhotoEngine.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, ExactSpelling = true)] private static extern void ZPHOTO_LabToRGB(int L, int A, int B, ref int Red, ref int Green, ref int Blue); #endregion #region API FOR C SHARP public Bitmap NoiseEffect(Bitmap src, int ratio, float sigma, float phase) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_NoiseEffect((byte*)srcData.Scan0, w, h, srcData.Stride, ratio, sigma, phase); a.UnlockBits(srcData); return a; } public Bitmap DisplacementFilter(Bitmap src, Bitmap mask, int hRatio, int vRatio) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); BitmapData maskData = mask.LockBits(new Rectangle(0, 0, mask.Width, mask.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_DisplacementFilter((byte*)srcData.Scan0, w, h, srcData.Stride, (byte*)maskData.Scan0, mask.Width, mask.Height,maskData.Stride, hRatio, vRatio); a.UnlockBits(srcData); mask.UnlockBits(maskData); return a; } public Bitmap LUTFilter(Bitmap src, Bitmap map, int ratio) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); BitmapData mapData = map.LockBits(new Rectangle(0, 0, map.Width, map.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_LUTFilter((byte*)srcData.Scan0, w, h, srcData.Stride, (byte*)mapData.Scan0, ratio); a.UnlockBits(srcData); map.UnlockBits(mapData); return a; } public Bitmap HighlightShadowPreciseAdjustProcess(Bitmap src, float highlight, float shadow) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_HighlightShadowPrecise((byte*)srcData.Scan0, w, h, srcData.Stride, highlight, shadow); a.UnlockBits(srcData); return a; } public Bitmap ImageWarpWaveProcess(Bitmap src, int intensity) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_ImageWarpWave((byte*)srcData.Scan0, w, h, srcData.Stride, intensity); a.UnlockBits(srcData); return a; } public Bitmap GlowingEdgesProcess(Bitmap src, int edgeSize, int edgeLightness, int edgeSmoothness) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_GlowingEdges((byte*)srcData.Scan0, w, h, srcData.Stride, edgeSize, edgeLightness, edgeSmoothness); a.UnlockBits(srcData); return a; } public Bitmap MedianFilterProcess(Bitmap src, int size) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_MedianFilter((byte*)srcData.Scan0, w, h, srcData.Stride, size); a.UnlockBits(srcData); return a; } public Bitmap MaxFilterProcess(Bitmap src, int size) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_MaxFilter((byte*)srcData.Scan0, w, h, srcData.Stride,size); a.UnlockBits(srcData); return a; } public Bitmap MinFilterProcess(Bitmap src, int size) { Bitmap a = new Bitmap(src); int w = a.Width; int h = a.Height; BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_MinFilter((byte*)srcData.Scan0, w, h, srcData.Stride, size); a.UnlockBits(srcData); return a; } public Bitmap GammaCorrectProcess(Bitmap src, int intensity) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_GammaCorrect((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, intensity); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap ChannelMixProcess(Bitmap src, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_ChannelMixProcess((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, channel, kr, kg, kb, N, singleColor, constAdjust); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap MeanProcess(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Mean((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride); dst.UnlockBits(srcData); return dst; } public Bitmap AutoColorGradationAdjust(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_AutoColorGradation((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap AutoContrastAdjust(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_AutoContrast((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride); dst.UnlockBits(srcData); return dst; } public Bitmap HistagramEqualize(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_HistagramEqualize((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap MotionBlur(Bitmap src, int angle, int distance) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_MotionBlur((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, angle, distance); dst.UnlockBits(srcData); return dst; } public Bitmap TransformRotation(Bitmap src, float angle, int transform_method, int Interpolation_method) { BitmapData srcData = src.LockBits(new Rectangle(0, 0, src.Width, src.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); int[] srcImgSize = new int[3] { src.Width, src.Height, srcData.Stride }; int[] dstImgSize = new int[3]; float[] H = new float[6]; ZPHOTO_CalcWH(srcImgSize, angle, 1.0f, transform_method, dstImgSize, H); Bitmap dst = new Bitmap(dstImgSize[0], dstImgSize[1]); BitmapData dstData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); dstImgSize[2] = dstData.Stride; ZPHOTO_ImageTransformation((byte*)srcData.Scan0, srcImgSize, (byte*)dstData.Scan0, dstImgSize, H, Interpolation_method, transform_method); src.UnlockBits(srcData); dst.UnlockBits(dstData); return dst; } public Bitmap TransformScale(Bitmap src, float scale, int transform_method, int Interpolation_method) { BitmapData srcData = src.LockBits(new Rectangle(0, 0, src.Width, src.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); int[] srcImgSize = new int[3] { src.Width, src.Height, srcData.Stride }; int[] dstImgSize = new int[3]; float[] H = new float[6]; ZPHOTO_CalcWH(srcImgSize, 0, scale, transform_method, dstImgSize, H); Bitmap dst = new Bitmap(dstImgSize[0], dstImgSize[1]); BitmapData dstData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); dstImgSize[2] = dstData.Stride; ZPHOTO_ImageTransformation((byte*)srcData.Scan0, srcImgSize, (byte*)dstData.Scan0, dstImgSize, H, Interpolation_method, transform_method); src.UnlockBits(srcData); dst.UnlockBits(dstData); return dst; } public Bitmap TransformRotationScale(Bitmap src, float angle, float scale, int transform_method, int Interpolation_method) { BitmapData srcData = src.LockBits(new Rectangle(0, 0, src.Width, src.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); int[] srcImgSize = new int[3] { src.Width, src.Height, srcData.Stride }; int[] dstImgSize = new int[3]; float[] H = new float[6]; ZPHOTO_CalcWH(srcImgSize, angle, scale, transform_method, dstImgSize, H); Bitmap dst = new Bitmap(dstImgSize[0], dstImgSize[1]); BitmapData dstData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); dstImgSize[2] = dstData.Stride; ZPHOTO_ImageTransformation((byte*)srcData.Scan0, srcImgSize, (byte*)dstData.Scan0, dstImgSize, H, Interpolation_method, transform_method); src.UnlockBits(srcData); dst.UnlockBits(dstData); return dst; } public Bitmap TransformAffine(Bitmap src, float[] H, int transform_method, int Interpolation_method) { BitmapData srcData = src.LockBits(new Rectangle(0, 0, src.Width, src.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); int[] srcImgSize = new int[3] { src.Width, src.Height, srcData.Stride }; int[] dstImgSize = new int[3]; //float[] H = new float[6]; ZPHOTO_CalcWH(srcImgSize, 0, 1.0f, transform_method, dstImgSize, H); Bitmap dst = new Bitmap(dstImgSize[0], dstImgSize[1]); BitmapData dstData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); dstImgSize[2] = dstData.Stride; ZPHOTO_ImageTransformation((byte*)srcData.Scan0, srcImgSize, (byte*)dstData.Scan0, dstImgSize, H, Interpolation_method, transform_method); src.UnlockBits(srcData); dst.UnlockBits(dstData); return dst; } public Bitmap Threshold(Bitmap src, int threshold) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Threshold((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, threshold); dst.UnlockBits(srcData); return dst; } public Bitmap TransformMirror(Bitmap srcBitmap, int transform_method) { Bitmap src = new Bitmap(srcBitmap); BitmapData srcData = src.LockBits(new Rectangle(0, 0, src.Width, src.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); int[] srcImgSize = new int[3] { src.Width, src.Height, srcData.Stride }; int[] dstImgSize = new int[3]; float[] H = new float[6]; ZPHOTO_CalcWH(srcImgSize, 0, 1.0f, transform_method, dstImgSize, H); Bitmap dst = new Bitmap(dstImgSize[0], dstImgSize[1]); BitmapData dstData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); dstImgSize[2] = dstData.Stride; int Interpolation_method = 0; ZPHOTO_ImageTransformation((byte*)srcData.Scan0, srcImgSize, (byte*)dstData.Scan0, dstImgSize, H, Interpolation_method, transform_method); src.UnlockBits(srcData); dst.UnlockBits(dstData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap Fragment(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Fragment((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride); dst.UnlockBits(srcData); return dst; } public Bitmap HueSaturationAdjust(Bitmap src, int hue, int saturation) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_HueAndSaturation((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, hue, saturation); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap ColorTemperatureProcess(Bitmap src, int intensity) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_ColorTemperature((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, intensity); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap Posterize(Bitmap src, int clusterNum) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Posterize((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, clusterNum); dst.UnlockBits(srcData); return dst; } public Bitmap Desaturate(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Desaturate((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, 100); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap OverExposure(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_OverExposure((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap ExposureAdjust(Bitmap src, int intensity) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Exposure((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, intensity); dst.UnlockBits(srcData); return dst; } public Bitmap LightnessAdjustProcess(Bitmap src, int lightness) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Lightness((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, lightness); dst.UnlockBits(srcData); return dst; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public Bitmap ShadowAdjust(Bitmap src, int intensity, int ratio) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Shadow((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, intensity, ratio); dst.UnlockBits(srcData); return dst; } public Bitmap HighlightAdjust(Bitmap src, int intensity, int ratio) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Highlight((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, intensity, ratio); dst.UnlockBits(srcData); return dst; } public Bitmap Invert(Bitmap src) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Invert((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride); dst.UnlockBits(srcData); return dst; } public Bitmap SurfaceBlur(Bitmap src, int threshold, int radius) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_SurfaceBlur((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, threshold, radius); dst.UnlockBits(srcData); return dst; } public Bitmap NLinearBrightContrastAdjust(Bitmap src, int bright, int contrast, int threshold) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_NLinearBrightContrast((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, bright, contrast, threshold); dst.UnlockBits(srcData); return dst; } public Bitmap LinearBrightContrastAdjust(Bitmap src, int bright, int contrast, int threshold) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_LinearBrightContrast((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, bright, contrast, threshold); dst.UnlockBits(srcData); return dst; } public Bitmap FindEdgesProcess(Bitmap src) { Bitmap a = new Bitmap(src); BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_FindEdges((byte*)srcData.Scan0, a.Width, a.Height, srcData.Stride); a.UnlockBits(srcData); return a; } public Bitmap GaussFilterProcess(Bitmap src, float radius) { Bitmap a = new Bitmap(src); BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_FastestGaussFilter((byte*)srcData.Scan0, a.Width, a.Height, srcData.Stride, radius); a.UnlockBits(srcData); return a; } public Bitmap MeanFilterProcess(Bitmap src, int radius) { Bitmap a = new Bitmap(src); BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_FastMeanFilter((byte*)srcData.Scan0, a.Width, a.Height, srcData.Stride, radius); a.UnlockBits(srcData); return a; } public Bitmap HighPassProcess(Bitmap src, float radius) { Bitmap a = new Bitmap(src); BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_HighPass((byte*)srcData.Scan0, a.Width, a.Height, srcData.Stride, radius); a.UnlockBits(srcData); return a; } public Bitmap USMProcess(Bitmap src, float radius, int amount, int threshold) { Bitmap a = new Bitmap(src); BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_USM((byte*)srcData.Scan0, a.Width, a.Height, srcData.Stride, radius, amount, threshold); a.UnlockBits(srcData); return a; } public Bitmap SaturationProcess(Bitmap src, int saturation) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Saturation((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, saturation); dst.UnlockBits(srcData); return dst; } public Bitmap NaturalSaturationProcess(Bitmap src, int saturation) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_NaturalSaturation((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, saturation); dst.UnlockBits(srcData); return dst; } public Bitmap ColorBalanceProcess(Bitmap src, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_ColorBalance((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, cyan, magenta, yellow, channel, preserveLuminosity); dst.UnlockBits(srcData); return dst; } public Bitmap Relief(Bitmap src, int angle, int amount) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Relief((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, angle, amount); dst.UnlockBits(srcData); return dst; } public Bitmap DiffusionProcess(Bitmap src, int intensity) { Bitmap a = new Bitmap(src); BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Diffusion((byte*)srcData.Scan0, a.Width, a.Height, srcData.Stride, intensity); a.UnlockBits(srcData); return a; } public Bitmap MosaicProcess(Bitmap src, int size) { Bitmap a = new Bitmap(src); BitmapData srcData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Mosaic((byte*)srcData.Scan0, a.Width, a.Height, srcData.Stride, size); a.UnlockBits(srcData); return a; } public Bitmap RadialBlurProcess(Bitmap src, int amount) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_RadialBlur((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, dst.Width / 2, dst.Height / 2, amount); dst.UnlockBits(srcData); return dst; } public Bitmap ZoomBlurProcess(Bitmap src, int radius, int amount) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_ZoomBlur((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, dst.Width / 2, dst.Height / 2, radius, amount); dst.UnlockBits(srcData); return dst; } public Bitmap ColorLevelProcess(Bitmap src, int DestChannel, int InputLeftLimit, float InputMiddle, int InputRightLimit, int OutputLeftLimit, int OutputRightLimit) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); //f_TCurveAdjust((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, DestChannel, InputLeftLimit, InputMiddle, InputRightLimit, OutputLeftLimit, OutputRightLimit); ZPHOTO_ColorLevel((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, DestChannel, (byte)InputLeftLimit, InputMiddle, (byte)InputRightLimit, (byte)OutputLeftLimit, (byte)OutputRightLimit); dst.UnlockBits(srcData); return dst; } public Bitmap BlackwhiteProcess(Bitmap src, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_Blackwhite((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, kRed, kGreen, kBlue, kYellow, kCyan, kMagenta); dst.UnlockBits(srcData); return dst; } public Bitmap LUTFilterProcess(Bitmap src, Bitmap map, int ratio) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); BitmapData mapData = map.LockBits(new Rectangle(0, 0, map.Width, map.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_LUTFilter((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, (byte*)mapData.Scan0, ratio); dst.UnlockBits(srcData); map.UnlockBits(mapData); return dst; } ////////////////////////////////Update//////////////////////////////////////// public Bitmap SmartBlurProcess(Bitmap src, int size, int threshold) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_SmartBlurFilter((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, size, threshold); dst.UnlockBits(srcData); return dst; } public Bitmap AnisotropicFilter(Bitmap src, int iter, float k) { Bitmap dst = new Bitmap(src); BitmapData srcData = dst.LockBits(new Rectangle(0, 0, dst.Width, dst.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ZPHOTO_AnisotropicFilter((byte*)srcData.Scan0, dst.Width, dst.Height, srcData.Stride, iter, k, 0.25f, 3); dst.UnlockBits(srcData); return dst; } #endregion } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ZoomBlurForm.Designer.cs ================================================ namespace TestDemo { partial class ZoomBlurForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar2 = new CCWin.SkinControl.SkinHScrollBar(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pictureBox1.Location = new System.Drawing.Point(207, 38); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(150, 150); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox1.TabIndex = 13; this.pictureBox1.TabStop = false; // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar2); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.textBox2); this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(6, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 12; this.groupBox1.TabStop = false; // // skinHScrollBar2 // this.skinHScrollBar2.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar2.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar2.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar2.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar2.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar2.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar2.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar2.Location = new System.Drawing.Point(19, 83); this.skinHScrollBar2.Maximum = 109; this.skinHScrollBar2.Minimum = 1; this.skinHScrollBar2.Name = "skinHScrollBar2"; this.skinHScrollBar2.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar2.TabIndex = 7; this.skinHScrollBar2.Value = 10; this.skinHScrollBar2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar2_Scroll); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(29, 62); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(59, 12); this.label2.TabIndex = 5; this.label2.Text = "数量(A):"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(100, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(57, 21); this.textBox2.TabIndex = 6; this.textBox2.Text = "10"; this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(19, 36); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Minimum = 1; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Value = 10; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(59, 12); this.label1.TabIndex = 1; this.label1.Text = "半径(R):"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 12); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "10"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // ZoomBlurForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(371, 196); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(371, 196); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(371, 196); this.Name = "ZoomBlurForm"; this.Text = "缩放模糊"; this.TitleCenter = false; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar2; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ZoomBlurForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class ZoomBlurForm : CCWin.Skin_Mac { public ZoomBlurForm(string path) { InitializeComponent(); this.DoubleBuffered = true; zPhoto = new ZPhotoEngineDll(); Bitmap tmp = new Bitmap(path); if (tmp != null) { curBitmap = new Bitmap(tmp, 150 * tmp.Width / Math.Max(tmp.Width, tmp.Height), 150 * tmp.Height / Math.Max(tmp.Width, tmp.Height)); pictureBox1.Image = (Image)zPhoto.ZoomBlurProcess(curBitmap, radius, amount); } } private ZPhotoEngineDll zPhoto = null; private Bitmap curBitmap = null; private int radius = 10; private int amount = 10; public int getRadius { get { return radius; } } public int getAmount { get { return amount; } } //radius private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = skinHScrollBar1.Value; amount = skinHScrollBar2.Value; textBox1.Text = radius.ToString(); textBox2.Text = amount.ToString(); pictureBox1.Image = (Image)zPhoto.ZoomBlurProcess(curBitmap, radius, amount); } } //amount private void skinHScrollBar2_Scroll(object sender, ScrollEventArgs e) { if (curBitmap != null) { radius = skinHScrollBar1.Value; amount = skinHScrollBar2.Value; textBox1.Text = radius.ToString(); textBox2.Text = amount.ToString(); pictureBox1.Image = (Image)zPhoto.ZoomBlurProcess(curBitmap, radius, amount); } } private void skinButton1_Click(object sender, EventArgs e) { radius = skinHScrollBar1.Value; amount = skinHScrollBar2.Value; this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ZoomBlurForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ZoomForm.Designer.cs ================================================ namespace TestDemo { partial class ZoomForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.groupBox1 = new System.Windows.Forms.GroupBox(); this.skinHScrollBar1 = new CCWin.SkinControl.SkinHScrollBar(); this.skinButton1 = new CCWin.SkinControl.SkinButton(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // groupBox1 // this.groupBox1.Controls.Add(this.skinHScrollBar1); this.groupBox1.Controls.Add(this.skinButton1); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.textBox1); this.groupBox1.Location = new System.Drawing.Point(13, 38); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(185, 153); this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; // // skinHScrollBar1 // this.skinHScrollBar1.BackHover = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(216)))), ((int)(((byte)(243))))); this.skinHScrollBar1.BackNormal = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(249)))), ((int)(((byte)(253))))); this.skinHScrollBar1.BackPressed = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(202)))), ((int)(((byte)(239))))); this.skinHScrollBar1.Base = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(230)))), ((int)(((byte)(247))))); this.skinHScrollBar1.Border = System.Drawing.Color.FromArgb(((int)(((byte)(89)))), ((int)(((byte)(210)))), ((int)(((byte)(249))))); this.skinHScrollBar1.Fore = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(135)))), ((int)(((byte)(192))))); this.skinHScrollBar1.InnerBorder = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.skinHScrollBar1.Location = new System.Drawing.Point(17, 81); this.skinHScrollBar1.Maximum = 109; this.skinHScrollBar1.Name = "skinHScrollBar1"; this.skinHScrollBar1.Size = new System.Drawing.Size(151, 17); this.skinHScrollBar1.TabIndex = 4; this.skinHScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.skinHScrollBar1_Scroll); // // skinButton1 // this.skinButton1.BackColor = System.Drawing.Color.Transparent; this.skinButton1.ControlState = CCWin.SkinClass.ControlState.Normal; this.skinButton1.DownBack = null; this.skinButton1.Location = new System.Drawing.Point(55, 115); this.skinButton1.MouseBack = null; this.skinButton1.Name = "skinButton1"; this.skinButton1.NormlBack = null; this.skinButton1.Size = new System.Drawing.Size(75, 23); this.skinButton1.TabIndex = 3; this.skinButton1.Text = "确定"; this.skinButton1.UseVisualStyleBackColor = false; this.skinButton1.Click += new System.EventHandler(this.skinButton1_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(29, 44); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 1; this.label1.Text = "比例:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(100, 41); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(57, 21); this.textBox1.TabIndex = 2; this.textBox1.Text = "0"; this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // // ZoomForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(210, 205); this.Controls.Add(this.groupBox1); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(210, 205); this.MaxSize = new System.Drawing.Size(0, 0); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(210, 205); this.MiniSize = new System.Drawing.Size(0, 0); this.Name = "ZoomForm"; this.Text = "图像缩放"; this.TitleCenter = false; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.GroupBox groupBox1; private CCWin.SkinControl.SkinHScrollBar skinHScrollBar1; private CCWin.SkinControl.SkinButton skinButton1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ZoomForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestDemo { public partial class ZoomForm : CCWin.Skin_Mac { public ZoomForm() { InitializeComponent(); this.DoubleBuffered = true; } private float scale = 0; public float getScale { get { return scale; } } private void skinButton1_Click(object sender, EventArgs e) { scale = (float)skinHScrollBar1.Value / 10.0f; this.DialogResult = DialogResult.OK; this.Close(); } private void skinHScrollBar1_Scroll(object sender, ScrollEventArgs e) { textBox1.Text = ((double)skinHScrollBar1.Value / 10.0).ToString(); } } } ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/ZoomForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/app.config ================================================ ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/bin/Release/TestDemo.exe.config ================================================ ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/bin/Release/TestDemo.vshost.exe.config ================================================ ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/bin/Release/TestDemo.vshost.exe.manifest ================================================  ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/obj/x86/Debug/TestDemo.csproj.FileListAbsolute.txt ================================================ H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.csprojResolveAssemblyReference.cache H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.AnisotropicFilterForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.BlackWhiteForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.ChannelMixForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.ColorbalanceForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.DifussionForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.ExposureForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.GammaForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.GaussBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.HighlightShadowForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.HighpassForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.HistagramForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.LevelForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.MaxForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.MeanBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.MedianForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.MinForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.MosciaForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.MotionBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.NSaturationForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.PosterizeForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.FilterForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.BrightContrastForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.Form1.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.HSLForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.MessageForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.Properties.Resources.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.RadialBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.ReliefForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.RotateForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.SmartBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.SurfaceBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.TempreatureForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.ThresholdForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.USMForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.ZoomBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.ZoomForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Debug\TestDemo.csproj.GenerateResource.Cache ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo/obj/x86/Release/TestDemo.csproj.FileListAbsolute.txt ================================================ H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.AnisotropicFilterForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.BlackWhiteForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.ChannelMixForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.ColorbalanceForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.DifussionForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.ExposureForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.GammaForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.GaussBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.HighlightShadowForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.HighpassForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.HistagramForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.LevelForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.MaxForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.MeanBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.MedianForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.MinForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.MosciaForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.MotionBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.NSaturationForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.PosterizeForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.FilterForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.BrightContrastForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.Form1.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.HSLForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.MessageForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.Properties.Resources.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.RadialBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.ReliefForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.RotateForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.SmartBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.SurfaceBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.TempreatureForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.ThresholdForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.USMForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.ZoomBlurForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.ZoomForm.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.csproj.GenerateResource.Cache H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\bin\Release\TestDemo.exe.config H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.csprojResolveAssemblyReference.cache H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\bin\Release\TestDemo.exe H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\bin\Release\TestDemo.pdb H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.DisplacementFrom.resources H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.exe H:\ME\Github项目\ZPhotoEngine\ZPHOTOENGINE\PC\PC-ProjectCodes\TestDemo\obj\x86\Release\TestDemo.pdb ================================================ FILE: ZPHOTOENGINE/PC/PC-ProjectCodes/TestDemo.sln ================================================  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestDemo", "TestDemo\TestDemo.csproj", "{B42BF672-4C45-46EA-ABAC-364D7F99F507}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Mixed Platforms = Debug|Mixed Platforms Debug|Win32 = Debug|Win32 Debug|x86 = Debug|x86 Release|Mixed Platforms = Release|Mixed Platforms Release|Win32 = Release|Win32 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Debug|Mixed Platforms.Build.0 = Debug|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Debug|Win32.ActiveCfg = Debug|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Debug|x86.ActiveCfg = Debug|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Debug|x86.Build.0 = Debug|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Release|Mixed Platforms.ActiveCfg = Release|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Release|Mixed Platforms.Build.0 = Release|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Release|Win32.ActiveCfg = Release|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Release|x86.ActiveCfg = Release|x86 {B42BF672-4C45-46EA-ABAC-364D7F99F507}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: ZPHOTOENGINE/PC/ZPhotoEngine.h ================================================ /***************************************************************************** Copyright: Trent File name: ZPhotoEngine.h Description: ZPHOTO ENGINE LIBRARY FOR IMAGE PROCESSING LIKE PS Author: Trent Version: V3.6 Date: 2017-08-17 Mail: dongtingyueh@163.com *****************************************************************************/ #ifndef __T_PHOTOENGINE__ #define __T_PHOTOENGINE__ ////////////////////////////////////////////////////////////////////////////// //ͼģʽ const int BLEND_MODE_DARKEN = 1; const int BLEND_MODE_MULTIPLY = 2; const int BLEND_MODE_COLORBURN = 3; const int BLEND_MODE_LINEARBURN = 4; const int BLEND_MODE_DARKNESS = 5; const int BLEND_MODE_LIGHTEN = 6; const int BLEND_MODE_SCREEN = 7; const int BLEND_MODE_COLORDODGE = 8; const int BLEND_MODE_COLORLINEARDODGE = 9; const int BLEND_MODE_LIGHTCOLOR = 10; const int BLEND_MODE_OVERLAY = 11; const int BLEND_MODE_SOFTLIGHT = 12; const int BLEND_MODE_HARDLIGHT = 13; const int BLEND_MODE_VIVIDLIGHT = 14; const int BLEND_MODE_LINEARLIGHT = 15; const int BLEND_MODE_PINLIGHT = 16; const int BLEND_MODE_SOLIDCOLORMIXING = 17; const int BLEND_MODE_DIFFERENCE = 18; const int BLEND_MODE_EXCLUSION = 19; const int BLEND_MODE_SUBTRACTION = 20; const int BLEND_MODE_DIVIDE = 21; /////////////////////////////////////////////////////////////////////////////// #ifdef _MSC_VER #ifdef __cplusplus #define EXPORT extern "C" _declspec(dllexport) #else #define EXPORT __declspec(dllexport) #endif // /************************************************* Function: ZPHOTO_Saturation Description: Ͷȵ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride saturation-ͶֵΧ[0,512] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); /************************************************* Function: ZPHOTO_Posterize Description: ɫ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride clusterNum-ɫΧ[2,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); /************************************************* Function: ZPHOTO_OverExposure Description: ع. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride);//ع /************************************************* Function: ZPHOTO_Lightness Description: ȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride lightness-ֵΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness);//ȵ /************************************************* Function: ZPHOTO_Invert Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride);// /************************************************* Function: ZPHOTO_HueAndSaturation Description: ɫ౥Ͷȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride hue-ɫֵΧ[-180,180] saturation-ͶֵΧΪ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation);//ɫ౥Ͷȵ /************************************************* Function: ZPHOTO_HistagramEqualize Description: ɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride);//ɫ /************************************************* Function: ZPHOTO_Desaturate Description: ȥɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ȥɫ̶ȣ[0-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio);//ȥɫ /************************************************* Function: ZPHOTO_Curve Description: ߵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 knotsPos-XY飺ʼ+м+ĩβ㣬һspline Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); /************************************************* Function: ZPHOTO_CurveLevel Description: ɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 inputLeftLimit-СֵΧ[0,255] inputMiddle-мֵΧ[0,9.99] inputRightLimit-ֵΧ[0,255] outputLeftLimit-СֵΧ[0,255] outputRightLimit-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit);//ɫ׵ /************************************************* Function: ZPHOTO_NLinearBrightContrastAdjust Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-255,255] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_LinearBrightContrast Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-100,100] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_Blackwhite Description: ڰ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride kRed-ɫ,Χ[-200,300] kGreen-ɫ,Χ[-200,300] kBlue-ɫ,Χ[-200,300] kYellow-ɫ,Χ[-200,300] kCyan-ɫ,Χ[-200,300] kMagenta-,Χ[-200,300] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta);//ڰ /************************************************* Function: ZPHOTO_AutoContrast Description: ԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoContrastAdjustWithParameters Description: ƵԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoColorGradation Description: Զɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride);//Զɫ /************************************************* Function: ZPHOTO_AutoColorGradationAdjustWithParameters Description: ƵԶɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//Զɫ /************************************************* Function: ZPHOTO_Threshold Description: ֵ(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold);//ֵ /************************************************* Function: ZPHOTO_ChannelMixProcess Description: ͨ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride channel-Red-0,Green-1,Blue-2,Gray-3 kr-RedͨΧ[-200,200] kg-GreenͨΧ[-200,200] kb-BlueͨΧ[-200,200] N-ڱΧ[-200,200] singleColor-Ƿɫɫ-trueɫ-false constAdjust-Ƿִгڣ-true,-false Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); /************************************************* Function: ZPHOTO_FastestGaussFilter Description: ٸ˹ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius);//˹˲ /************************************************* Function: ZPHOTO_HighPass Description: ߷ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius);//߷ /************************************************* Function: ZPHOTO_USM Description: USM Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹뾶ΧΪ[0,1000] amount-񻯳̶ȣΧΪ[0,500] threshold-ֵΧΪ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); /************************************************* Function: ZPHOTO_FindEdges Description: ұԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride);//ұԵ ///////////////////////////////////////////////////////////////////////////////////////////////////// //ͼϹ /************************************************* Function: ZPHOTO_ModeDarken Description: 䰵ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarken(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeMultiply Description: Ƭģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorBurn Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearBurn Description: Խģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDarkness Description: ɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeLighten Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLighten(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeScreen Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeScreen(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorDodge Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorLinearDodge Description: ɫԼģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLightColor Description: dzɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeOverlay Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSoftLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeHardLight Description: ǿģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeVividLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearLight Description: Թģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModePinLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModePinLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSolidColorMixing Description: ʵɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeDifference Description: ֵģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDifference(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeExclusion Description: ųģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSubtraction Description: ȥģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDivide Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDivide(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDesaturate Description: ȥɫ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDesaturate(int red,int green,int blue); /************************************************* Function: ZPHOTO_ModeColorInvert Description: Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); /************************************************* Function: ZPHOTO_ImageBlendEffect Description: ͼ Input: baseData-ͼͼBufferʽΪ32λBGRA width-ͼ height-ͼ߶ stride-ͼStride mixData-ͼͼBufferСͼͼһ blendMode-ͼģʽ Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode); ///////////////////////////////////////////////////////////////////////////////////////////////////// //չ /************************************************* Function: ZPHOTO_ColorTemperature Description: ɫµ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɫǿȣΧ[-50,50]intensity < 0ɫintensity = 0,ԭͼintensity > 0ůɫ Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Shadow Description: Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ӰǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Shadow(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Highlight Description: ߹ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--߹ǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Highlight(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_HighlightShadowPrecise Description: ߹Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride highlight--߹ǿֵȡֵΧΪ[-200,100] shadow-ӰǿֵȡֵΧΪ[-200,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); /************************************************* Function: ZPHOTO_Exposure Description: ع Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--عǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_CalcWH Description: ͼ任֮Ŀ߼任HýӿZPHOTO_ImageTransformation Input: inputImgSize--ͼϢ angle--תǶֵȡֵΧΪ[-360-360] scale--ű任ֵȡֵ0 transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 outputImgSize--ͼϢ H--任飬Ϊ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); /************************************************* Function: ZPHOTO_ImageTransformation Description: ͼ任 Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ srcImgSize--ԭʼͼϢ dstData--ͼBufferСɽӿZPHOTO_CalcWH dstImgSize--ĿͼϢ H--任飬Ϊ6 Interpolation_method--ֵѡinterpolation_bilinear,interpolation_nearest Transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); /************************************************* Function: ZPHOTO_FastMeanFilter Description: ֵģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius--ֵ˲뾶ȡֵΧΪ[0,width / 2] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); /************************************************* Function: ZPHOTO_SobelFilter Description: SobelԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); //For Android Development /************************************************* Function: ZPHOTO_RGBA2BGRA Description: RGBAʽתBGRAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_BGRA2RGBA Description: BGRAʽתRGBAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Fragment Description: Ƭ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_MotionBlur Description: ˶ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-˶ģǶֵȡֵΧΪ[0,360] distance-˶ģֵȡֵΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); /************************************************* Function: ZPHOTO_SurfaceBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ģֵֵȡֵΧΪ[0,255] radius-ģ뾶ֵȡֵΧΪ[0,10] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); /************************************************* Function: ZPHOTO_RadialBlur Description: תģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ѡģX cenY-תģY amount-תģ̶ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); /************************************************* Function: ZPHOTO_ZoomBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ģX cenY-ģY sampleRadius-ģ뾶ΧΪ[0-255] amount-ģ̶,ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); /************************************************* Function: ZPHOTO_Relief Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-ǶȣΧΪ[0-360] amount-̶,ΧΪ[0-500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); /************************************************* Function: ZPHOTO_Mean Description: ƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Mosaic Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-Mosaic뾶,ΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mosaic(unsigned char* srcData, int width, int height, int stride, int size); /************************************************* Function: ZPHOTO_ColorBalance Description: ɫƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cyan-ɫΧΪ[-100,100] magenta-죬ΧΪ[-100,100] yellow-ɫΧΪ[-100,100] channel-ͨѡRGB-0,R-1,G-2,B-3 preserveLuminosity-true:ȣfalse: Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); /************************************************* Function: ZPHOTO_Diffusion Description: ɢ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɢ̶ȣΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); /************************************************* Function: ZPHOTO_LSNBlur Description: LSNBlur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-LSNBlur뾶ΧΪ[0,200] delta-[0,500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); /************************************************* Function: ZPHOTO_MedianFilter Description: ֵ˲(мɫ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride,int radius); /************************************************* Function: ZPHOTO_MaxFilter Description: ֵ˲(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_MinFilter Description: Сֵ˲(Сֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_GlowingEdges Description: Ե˾ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride edgeSize-ԵֵȡֵΧΪ[1,14] edgeLightness-ԵֵȡֵΧΪ[0,20] edgeSmoothness-ƽȣȡֵΧΪ[1,15] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); /************************************************* Function: ZPHOTO_ImageWarpWave Description: Wave Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-γ̶ȣΧ[0, 100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_RGBToYCbCr Description: RGBתYCbCr Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Y-Y Cb-Cb Cr-Cr Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); /************************************************* Function: ZPHOTO_YCbCrToRGB Description: YCbCrתRGB Input: Y-Y Cb-Cb Cr-Cr Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); /************************************************* Function: ZPHOTO_RGBToLab Description: RGBתLAB Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); /************************************************* Function: ZPHOTO_LabToRGB Description: LABתRGB Input: L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); /************************************************* Function: ZPHOTO_GammaCorrect Description: Gamma Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-GammaΧ[1,50] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); /******************************************************************************* * Function Name : Natural Saturation * Description : ȻͶ * Input srcData : image data * Input width : image width * Input height : image height * Input stride : image stride * Input saturation : saturation value to adjust from -100 to 100 * Output : None * Return : 0-success, others failed *******************************************************************************/ EXPORT int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); EXPORT int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); /****************************************************Update*************************************************** ****************************************************Date:2018-06-21******************************************* Content: Smart blur filter Anisotropic Filter *************************************************************************************************************/ /************************************************* Function: ZPHOTO_SmartBlurFilter Description: Smart Blur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-ģ뾶ֵȡֵΧΪ[0,100] threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); /************************************************* Function: ZPHOTO_AnisotropicFilter Description: Anisotropic Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride iter-ȡֵΧΪ[0,100] k-ɢϵΧ[0,] lambda-[0,0.35],default 0.25 offset-[0,10],default 3 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); /************************************************* Function: ZPHOTO_DisplacementFilter Description: Displacement Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride maskData-ûͼʽΪ32λBGRAʽ mWidth-ûͼ mHeight-ûͼ߶ mStride-ûͼStride hRatio-ˮƽΧ[-100,100] vRatio-ֱΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); /************************************************* Function: ZPHOTO_NoiseEffect Description: Noise effect Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ͼĻϱΧ[0,100] sigma-Χ[0,] phase-ȣΧ[0,] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #else #ifdef __cplusplus extern "C" { #endif // int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness); int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation); int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride); int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio); int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit); int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold); int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold); int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta); int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold); int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius); int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); //V1.2 int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); int ZPHOTO_Mosaic(unsigned char *srcData, int width, int height, int stride, int size); int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); ///ͼϹ int ZPHOTO_ModeDarken(int basePixel,int mixPixel); int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeLighten(int basePixel,int mixPixel); int ZPHOTO_ModeScreen(int basePixel,int mixPixel); int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); int ZPHOTO_ModePinLight(int basePixel,int mixPixel); int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeDifference(int basePixel,int mixPixel); int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); int ZPHOTO_ModeDivide(int basePixel,int mixPixel); int ZPHOTO_ModeDesaturate(int red,int green,int blue); int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode);//ͼ //չ int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius); int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); //For Android Development int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #ifdef __cplusplus } #endif #endif #endif ================================================ FILE: ZPHOTOENGINE/PC/library/ReadMe.txt ================================================ shared library: ZPhotoEngine.dll static library: ZPhotoEngine.lib ================================================ FILE: ZPHOTOENGINE/PC/library/ZPhotoEngine.h ================================================ /***************************************************************************** Copyright: Trent File name: ZPhotoEngine.h Description: ZPHOTO ENGINE LIBRARY FOR IMAGE PROCESSING LIKE PS Author: Trent Version: V3.6 Date: 2017-08-17 Mail: dongtingyueh@163.com *****************************************************************************/ #ifndef __T_PHOTOENGINE__ #define __T_PHOTOENGINE__ ////////////////////////////////////////////////////////////////////////////// //ͼģʽ const int BLEND_MODE_DARKEN = 1; const int BLEND_MODE_MULTIPLY = 2; const int BLEND_MODE_COLORBURN = 3; const int BLEND_MODE_LINEARBURN = 4; const int BLEND_MODE_DARKNESS = 5; const int BLEND_MODE_LIGHTEN = 6; const int BLEND_MODE_SCREEN = 7; const int BLEND_MODE_COLORDODGE = 8; const int BLEND_MODE_COLORLINEARDODGE = 9; const int BLEND_MODE_LIGHTCOLOR = 10; const int BLEND_MODE_OVERLAY = 11; const int BLEND_MODE_SOFTLIGHT = 12; const int BLEND_MODE_HARDLIGHT = 13; const int BLEND_MODE_VIVIDLIGHT = 14; const int BLEND_MODE_LINEARLIGHT = 15; const int BLEND_MODE_PINLIGHT = 16; const int BLEND_MODE_SOLIDCOLORMIXING = 17; const int BLEND_MODE_DIFFERENCE = 18; const int BLEND_MODE_EXCLUSION = 19; const int BLEND_MODE_SUBTRACTION = 20; const int BLEND_MODE_DIVIDE = 21; /////////////////////////////////////////////////////////////////////////////// #ifdef _MSC_VER #ifdef __cplusplus #define EXPORT extern "C" _declspec(dllexport) #else #define EXPORT __declspec(dllexport) #endif // /************************************************* Function: ZPHOTO_Saturation Description: Ͷȵ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride saturation-ͶֵΧ[0,512] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); /************************************************* Function: ZPHOTO_Posterize Description: ɫ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride clusterNum-ɫΧ[2,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); /************************************************* Function: ZPHOTO_OverExposure Description: ع. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride);//ع /************************************************* Function: ZPHOTO_Lightness Description: ȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride lightness-ֵΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness);//ȵ /************************************************* Function: ZPHOTO_Invert Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride);// /************************************************* Function: ZPHOTO_HueAndSaturation Description: ɫ౥Ͷȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride hue-ɫֵΧ[-180,180] saturation-ͶֵΧΪ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation);//ɫ౥Ͷȵ /************************************************* Function: ZPHOTO_HistagramEqualize Description: ɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride);//ɫ /************************************************* Function: ZPHOTO_Desaturate Description: ȥɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ȥɫ̶ȣ[0-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio);//ȥɫ /************************************************* Function: ZPHOTO_Curve Description: ߵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 knotsPos-XY飺ʼ+м+ĩβ㣬һspline Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); /************************************************* Function: ZPHOTO_CurveLevel Description: ɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 inputLeftLimit-СֵΧ[0,255] inputMiddle-мֵΧ[0,9.99] inputRightLimit-ֵΧ[0,255] outputLeftLimit-СֵΧ[0,255] outputRightLimit-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit);//ɫ׵ /************************************************* Function: ZPHOTO_NLinearBrightContrastAdjust Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-255,255] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_LinearBrightContrast Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-100,100] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_Blackwhite Description: ڰ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride kRed-ɫ,Χ[-200,300] kGreen-ɫ,Χ[-200,300] kBlue-ɫ,Χ[-200,300] kYellow-ɫ,Χ[-200,300] kCyan-ɫ,Χ[-200,300] kMagenta-,Χ[-200,300] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta);//ڰ /************************************************* Function: ZPHOTO_AutoContrast Description: ԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoContrastAdjustWithParameters Description: ƵԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoColorGradation Description: Զɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride);//Զɫ /************************************************* Function: ZPHOTO_AutoColorGradationAdjustWithParameters Description: ƵԶɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//Զɫ /************************************************* Function: ZPHOTO_Threshold Description: ֵ(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold);//ֵ /************************************************* Function: ZPHOTO_ChannelMixProcess Description: ͨ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride channel-Red-0,Green-1,Blue-2,Gray-3 kr-RedͨΧ[-200,200] kg-GreenͨΧ[-200,200] kb-BlueͨΧ[-200,200] N-ڱΧ[-200,200] singleColor-Ƿɫɫ-trueɫ-false constAdjust-Ƿִгڣ-true,-false Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); /************************************************* Function: ZPHOTO_FastestGaussFilter Description: ٸ˹ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius);//˹˲ /************************************************* Function: ZPHOTO_HighPass Description: ߷ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius);//߷ /************************************************* Function: ZPHOTO_USM Description: USM Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹뾶ΧΪ[0,1000] amount-񻯳̶ȣΧΪ[0,500] threshold-ֵΧΪ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); /************************************************* Function: ZPHOTO_FindEdges Description: ұԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride);//ұԵ ///////////////////////////////////////////////////////////////////////////////////////////////////// //ͼϹ /************************************************* Function: ZPHOTO_ModeDarken Description: 䰵ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarken(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeMultiply Description: Ƭģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorBurn Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearBurn Description: Խģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDarkness Description: ɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeLighten Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLighten(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeScreen Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeScreen(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorDodge Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorLinearDodge Description: ɫԼģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLightColor Description: dzɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeOverlay Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSoftLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeHardLight Description: ǿģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeVividLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearLight Description: Թģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModePinLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModePinLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSolidColorMixing Description: ʵɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeDifference Description: ֵģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDifference(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeExclusion Description: ųģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSubtraction Description: ȥģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDivide Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDivide(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDesaturate Description: ȥɫ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDesaturate(int red,int green,int blue); /************************************************* Function: ZPHOTO_ModeColorInvert Description: Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); /************************************************* Function: ZPHOTO_ImageBlendEffect Description: ͼ Input: baseData-ͼͼBufferʽΪ32λBGRA width-ͼ height-ͼ߶ stride-ͼStride mixData-ͼͼBufferСͼͼһ blendMode-ͼģʽ Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode); ///////////////////////////////////////////////////////////////////////////////////////////////////// //չ /************************************************* Function: ZPHOTO_ColorTemperature Description: ɫµ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɫǿȣΧ[-50,50]intensity < 0ɫintensity = 0,ԭͼintensity > 0ůɫ Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Shadow Description: Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ӰǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Shadow(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Highlight Description: ߹ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--߹ǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Highlight(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_HighlightShadowPrecise Description: ߹Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride highlight--߹ǿֵȡֵΧΪ[-200,100] shadow-ӰǿֵȡֵΧΪ[-200,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); /************************************************* Function: ZPHOTO_Exposure Description: ع Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--عǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_CalcWH Description: ͼ任֮Ŀ߼任HýӿZPHOTO_ImageTransformation Input: inputImgSize--ͼϢ angle--תǶֵȡֵΧΪ[-360-360] scale--ű任ֵȡֵ0 transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 outputImgSize--ͼϢ H--任飬Ϊ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); /************************************************* Function: ZPHOTO_ImageTransformation Description: ͼ任 Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ srcImgSize--ԭʼͼϢ dstData--ͼBufferСɽӿZPHOTO_CalcWH dstImgSize--ĿͼϢ H--任飬Ϊ6 Interpolation_method--ֵѡinterpolation_bilinear,interpolation_nearest Transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); /************************************************* Function: ZPHOTO_FastMeanFilter Description: ֵģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius--ֵ˲뾶ȡֵΧΪ[0,width / 2] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); /************************************************* Function: ZPHOTO_SobelFilter Description: SobelԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); //For Android Development /************************************************* Function: ZPHOTO_RGBA2BGRA Description: RGBAʽתBGRAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_BGRA2RGBA Description: BGRAʽתRGBAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Fragment Description: Ƭ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_MotionBlur Description: ˶ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-˶ģǶֵȡֵΧΪ[0,360] distance-˶ģֵȡֵΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); /************************************************* Function: ZPHOTO_SurfaceBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ģֵֵȡֵΧΪ[0,255] radius-ģ뾶ֵȡֵΧΪ[0,10] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); /************************************************* Function: ZPHOTO_RadialBlur Description: תģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ѡģX cenY-תģY amount-תģ̶ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); /************************************************* Function: ZPHOTO_ZoomBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ģX cenY-ģY sampleRadius-ģ뾶ΧΪ[0-255] amount-ģ̶,ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); /************************************************* Function: ZPHOTO_Relief Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-ǶȣΧΪ[0-360] amount-̶,ΧΪ[0-500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); /************************************************* Function: ZPHOTO_Mean Description: ƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Mosaic Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-Mosaic뾶,ΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mosaic(unsigned char* srcData, int width, int height, int stride, int size); /************************************************* Function: ZPHOTO_ColorBalance Description: ɫƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cyan-ɫΧΪ[-100,100] magenta-죬ΧΪ[-100,100] yellow-ɫΧΪ[-100,100] channel-ͨѡRGB-0,R-1,G-2,B-3 preserveLuminosity-true:ȣfalse: Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); /************************************************* Function: ZPHOTO_Diffusion Description: ɢ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɢ̶ȣΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); /************************************************* Function: ZPHOTO_LSNBlur Description: LSNBlur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-LSNBlur뾶ΧΪ[0,200] delta-[0,500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); /************************************************* Function: ZPHOTO_MedianFilter Description: ֵ˲(мɫ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride,int radius); /************************************************* Function: ZPHOTO_MaxFilter Description: ֵ˲(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_MinFilter Description: Сֵ˲(Сֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_GlowingEdges Description: Ե˾ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride edgeSize-ԵֵȡֵΧΪ[1,14] edgeLightness-ԵֵȡֵΧΪ[0,20] edgeSmoothness-ƽȣȡֵΧΪ[1,15] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); /************************************************* Function: ZPHOTO_ImageWarpWave Description: Wave Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-γ̶ȣΧ[0, 100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_RGBToYCbCr Description: RGBתYCbCr Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Y-Y Cb-Cb Cr-Cr Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); /************************************************* Function: ZPHOTO_YCbCrToRGB Description: YCbCrתRGB Input: Y-Y Cb-Cb Cr-Cr Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); /************************************************* Function: ZPHOTO_RGBToLab Description: RGBתLAB Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); /************************************************* Function: ZPHOTO_LabToRGB Description: LABתRGB Input: L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); /************************************************* Function: ZPHOTO_GammaCorrect Description: Gamma Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-GammaΧ[1,50] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); /******************************************************************************* * Function Name : Natural Saturation * Description : ȻͶ * Input srcData : image data * Input width : image width * Input height : image height * Input stride : image stride * Input saturation : saturation value to adjust from -100 to 100 * Output : None * Return : 0-success, others failed *******************************************************************************/ EXPORT int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); EXPORT int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); /****************************************************Update*************************************************** ****************************************************Date:2018-06-21******************************************* Content: Smart blur filter Anisotropic Filter *************************************************************************************************************/ /************************************************* Function: ZPHOTO_SmartBlurFilter Description: Smart Blur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-ģ뾶ֵȡֵΧΪ[0,100] threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); /************************************************* Function: ZPHOTO_AnisotropicFilter Description: Anisotropic Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride iter-ȡֵΧΪ[0,100] k-ɢϵΧ[0,] lambda-[0,0.35],default 0.25 offset-[0,10],default 3 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); /************************************************* Function: ZPHOTO_DisplacementFilter Description: Displacement Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride maskData-ûͼʽΪ32λBGRAʽ mWidth-ûͼ mHeight-ûͼ߶ mStride-ûͼStride hRatio-ˮƽΧ[-100,100] vRatio-ֱΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); /************************************************* Function: ZPHOTO_NoiseEffect Description: Noise effect Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ͼĻϱΧ[0,100] sigma-Χ[0,] phase-ȣΧ[0,] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #else #ifdef __cplusplus extern "C" { #endif // int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness); int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation); int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride); int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio); int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit); int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold); int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold); int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta); int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold); int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius); int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); //V1.2 int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); int ZPHOTO_Mosaic(unsigned char *srcData, int width, int height, int stride, int size); int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); ///ͼϹ int ZPHOTO_ModeDarken(int basePixel,int mixPixel); int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeLighten(int basePixel,int mixPixel); int ZPHOTO_ModeScreen(int basePixel,int mixPixel); int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); int ZPHOTO_ModePinLight(int basePixel,int mixPixel); int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeDifference(int basePixel,int mixPixel); int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); int ZPHOTO_ModeDivide(int basePixel,int mixPixel); int ZPHOTO_ModeDesaturate(int red,int green,int blue); int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode);//ͼ //չ int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius); int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); //For Android Development int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #ifdef __cplusplus } #endif #endif #endif ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/PC_LIB/inc/SFBITMAP.h ================================================ #ifndef _IN_BITMAP_H_ #define _IN_BITMAP_H_ #include"f_error.h" #define SF_IMAGE_MAX_PLANES 4 /*ͼṹBITMAP /* *pixelFormat:ظʽBGR24,BGRA32 *lWidth:ͼ *lHeight:ͼ߶ *lBitCounts:ÿλ *lPitch:ÿеbytes *pPlandData:ͼݵָ */ typedef struct _tag_SFBITMAP{ int pixelFormat; int lWidth; int lHeight; int lBitCounts; long lPitch[SF_IMAGE_MAX_PLANES]; unsigned char* pPlaneData[SF_IMAGE_MAX_PLANES]; }SFBITMAP,*LPSFBITMAP; /* *ͼظʽ */ typedef enum _sf_image_pixelformat{SF_IMAGE_PIXELFORMAT_YUV420,SF_IMAGE_PIXELFORMAT_BGR24,SF_IMAGE_PIXELFORMAT_BGRA32,SF_IMAGE_PIXELFORMAT_RGB24,SF_IMAGE_PIXELFORMAT_RGBA32 }SFPixelFormat; /* *ͼʽ */ typedef enum _sf_imageformat{SF_IMAGE_PNG,SF_IMAGE_BMP,SF_IMAGE_JPG, SF_IMAGE_GIF, SF_IMAGE_UNKNOWN}SFImageFormat; /* *ݴʽͼݣINBITMAP *srcData:ͼڴ *width:ͼ *height:ͼ߶ *bitCounts:ͼ񵥸bit *pixelFormat:ͼظʽ *dstBitmapINBITMAP */ int SFBITMAP_CreateFromImage(unsigned char* srcData, int width, int height, int bitCounts, int pixelFormat,SFBITMAP* dstBitmap); /* *INBITMAPתΪָʽ䵽ָڴ *srcBitmap:INBITMAP *srcDataĿʽͼڴBuffer *width:Ŀͼ *height:Ŀͼ߶ *bitCounts:Ŀͼ񵥸bit *pixelFormat:Ŀͼظʽ */ int SFBITMAP_ConvertToImage(SFBITMAP srcBitmap, unsigned char* srcData, int width, int height, int bitCounts, int pixelFormat); /*INBITMAP *bitmap:ҪͷŵINBITMAP */ void SFBITMAP_Free(SFBITMAP* bitmap); #endif ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/PC_LIB/inc/SFImageReadWrite.h ================================================ /************************************************************************* Copyright: SF. Author: Hu Yaowu Date: 2018-6-07 Mail: dongtingyueh@163.com Description: ú *************************************************************************/ #ifndef __SF_IMAGEPROCESS__ #define __SF_IMAGEPROCESS__ #include #include #include #include"SFBITMAP.h" #ifdef ZPHOTOENGINEIO #define ZPHOTOENGINEIO_API _declspec(dllexport) #else #define ZPHOTOENGINEIO_API _declspec(dllimport) #endif class SF_ImageReadWrite { public: SF_ImageReadWrite(); ~SF_ImageReadWrite(); int ReadImage(char* fileName); int SaveImage(char* fileName, int imageFormat); LPSFBITMAP sfBitmap; void Destroy(); private: int QT_ReadPNGImage(char *pngFileName); void QT_GetPNGImageSize(int imgSize[]); void QT_GetPNGImageData(unsigned char* imgData, int width, int height, int stride); int QT_SavePNGImage(unsigned char* srcData, int width, int height, int stride, const char* szPngFileNameOut); void QT_PNGFree(); int QT_ReadJPGImage(char *jpgFileName); void QT_GetJPGImageSize(int imgSize[]); void QT_GetJPGImageData(unsigned char* imgData, int width, int height, int stride); int QT_SaveJPGImage(unsigned char* srcData, int width, int height, int stride,const char* szJpgFileNameOut, int quality); void QT_JPGFree(); int QT_ReadBMPImage(char *bmpFileName); void QT_GetBMPImageSize(int imgSize[]); void QT_GetBMPImageData(unsigned char* imgData, int width, int height, int stride); int QT_SaveBMPImage(unsigned char* srcData, int width, int height, int stride, const char* szBmpFileNameOut); void QT_BMPFree(); int QT_GetImageFormat(char* fileName); }; //void CImage::LoadImage(char *fname) //{ // m_Width = m_Height = 0; // // ifstream ffin(fname, std::ios::binary); // // if (!ffin){ // cout<<"Can not open this file."< #include #include #include #include #include #include #include typedef enum _sf_ret { SF_RET_OK, SF_RET_ERR_PARA, SF_RET_ERR_MEM, SF_RET_ERR_NOT_SUPPORT = 0x04, SF_RET_ERR_OPEN_FILE = 0x08, SF_RET_ERR_DATA_UNINITED = 0x10, SF_RET_ERR_UNKNOWN = 0x20, SF_RET_ERR_END_OF_FILE = 0x40, SF_RET_ERR_DATA_UNREADABLE = 0x101, SF_RET_ERR_DATA_NOWRITEABLE = 0x102, }SF_RET; #define SF_PRINT_LOG(message) printf("Error occurred: %s \nError position:\nFile:%s \nLine:%d\n", message, __FILE__, __LINE__); static const char* sf_error_string[] = { "Good! Normal return!", "Your input params are wrong!", "Allocating memory failure! ", "Current version can not support!", "Opening file errors!", "Data are uninitialized!", "Unknown error!", "Arriving the end of the file!", "Data are waiting!", "Data length is not enough!" }; #define SF_LOG(level) \ { \ if (level == SF_RET_ERR_PARA){ \ SF_PRINT_LOG(sf_error_string[1]); \ } else if (level == SF_RET_ERR_MEM){ \ SF_PRINT_LOG(sf_error_string[2]); \ } else if (level == SF_RET_ERR_NOT_SUPPORT){ \ SF_PRINT_LOG(sf_error_string[3]); \ } else if (level == SF_RET_ERR_OPEN_FILE){ \ SF_PRINT_LOG(sf_error_string[4]); \ } else if (level == SF_RET_ERR_DATA_UNINITED){ \ SF_PRINT_LOG(sf_error_string[5]); \ } else if (level == SF_RET_ERR_UNKNOWN){ \ SF_PRINT_LOG(sf_error_string[6]); \ } else if (level == SF_RET_ERR_END_OF_FILE){ \ SF_PRINT_LOG(sf_error_string[7]); \ } else if (level == SF_RET_ERR_DATA_UNREADABLE){ \ SF_PRINT_LOG(sf_error_string[8]); \ } else if (level == SF_RET_ERR_DATA_NOWRITEABLE){ \ SF_PRINT_LOG(sf_error_string[9]); \ } \ } #endif ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/SFBITMAP.h ================================================ #ifndef _IN_BITMAP_H_ #define _IN_BITMAP_H_ #include"f_error.h" #define SF_IMAGE_MAX_PLANES 4 /*ͼṹBITMAP /* *pixelFormat:ظʽBGR24,BGRA32 *lWidth:ͼ *lHeight:ͼ߶ *lBitCounts:ÿλ *lPitch:ÿеbytes *pPlandData:ͼݵָ */ typedef struct _tag_SFBITMAP{ int pixelFormat; int lWidth; int lHeight; int lBitCounts; long lPitch[SF_IMAGE_MAX_PLANES]; unsigned char* pPlaneData[SF_IMAGE_MAX_PLANES]; }SFBITMAP,*LPSFBITMAP; /* *ͼظʽ */ typedef enum _sf_image_pixelformat{SF_IMAGE_PIXELFORMAT_YUV420,SF_IMAGE_PIXELFORMAT_BGR24,SF_IMAGE_PIXELFORMAT_BGRA32,SF_IMAGE_PIXELFORMAT_RGB24,SF_IMAGE_PIXELFORMAT_RGBA32 }SFPixelFormat; /* *ͼʽ */ typedef enum _sf_imageformat{SF_IMAGE_PNG,SF_IMAGE_BMP,SF_IMAGE_JPG, SF_IMAGE_GIF, SF_IMAGE_UNKNOWN}SFImageFormat; /* *ݴʽͼݣINBITMAP *srcData:ͼڴ *width:ͼ *height:ͼ߶ *bitCounts:ͼ񵥸bit *pixelFormat:ͼظʽ *dstBitmapINBITMAP */ int SFBITMAP_CreateFromImage(unsigned char* srcData, int width, int height, int bitCounts, int pixelFormat,SFBITMAP* dstBitmap); /* *INBITMAPתΪָʽ䵽ָڴ *srcBitmap:INBITMAP *srcDataĿʽͼڴBuffer *width:Ŀͼ *height:Ŀͼ߶ *bitCounts:Ŀͼ񵥸bit *pixelFormat:Ŀͼظʽ */ int SFBITMAP_ConvertToImage(SFBITMAP srcBitmap, unsigned char* srcData, int width, int height, int bitCounts, int pixelFormat); /*INBITMAP *bitmap:ҪͷŵINBITMAP */ void SFBITMAP_Free(SFBITMAP* bitmap); #endif ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/SFImageReadWrite.h ================================================ /************************************************************************* Copyright: SF. Author: Hu Yaowu Date: 2017-6-07 Mail: dongtingyueh@163.com Description: ú *************************************************************************/ #ifndef __SF_IMAGEPROCESS__ #define __SF_IMAGEPROCESS__ #include #include #include #include"SFBITMAP.h" #ifdef ZPHOTOENGINEIO #define ZPHOTOENGINEIO_API _declspec(dllexport) #else #define ZPHOTOENGINEIO_API _declspec(dllimport) #endif class SF_ImageReadWrite { public: SF_ImageReadWrite(); ~SF_ImageReadWrite(); int ReadImage(char* fileName); int SaveImage(char* fileName, int imageFormat); LPSFBITMAP sfBitmap; void Destroy(); private: int QT_ReadPNGImage(char *pngFileName); void QT_GetPNGImageSize(int imgSize[]); void QT_GetPNGImageData(unsigned char* imgData, int width, int height, int stride); int QT_SavePNGImage(unsigned char* srcData, int width, int height, int stride, const char* szPngFileNameOut); void QT_PNGFree(); int QT_ReadJPGImage(char *jpgFileName); void QT_GetJPGImageSize(int imgSize[]); void QT_GetJPGImageData(unsigned char* imgData, int width, int height, int stride); int QT_SaveJPGImage(unsigned char* srcData, int width, int height, int stride,const char* szJpgFileNameOut, int quality); void QT_JPGFree(); int QT_ReadBMPImage(char *bmpFileName); void QT_GetBMPImageSize(int imgSize[]); void QT_GetBMPImageData(unsigned char* imgData, int width, int height, int stride); int QT_SaveBMPImage(unsigned char* srcData, int width, int height, int stride, const char* szBmpFileNameOut); void QT_BMPFree(); int QT_GetImageFormat(char* fileName); }; //void CImage::LoadImage(char *fname) //{ // m_Width = m_Height = 0; // // ifstream ffin(fname, std::ios::binary); // // if (!ffin){ // cout<<"Can not open this file."< Debug Win32 Release Win32 {EBA08A16-113E-4326-AA10-FA9C30338ED9} Win32Proj ZPhotoIODEMO Application true Unicode Application false true Unicode false false NotUsing Level3 Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) Console true Level3 Use MaxSpeed true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) Console true true true ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/ZPhotoIODEMO.vcxproj.filters ================================================  {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms Source Files Header Files Header Files Header Files Header Files Header Files ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/ZPhotoIODEMO.vcxproj.user ================================================  ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/f_error.h ================================================ #ifndef __SF_EFFOR__ #define __SF_EFFOR__ static int SF_SUCCESS = 0; static int SF_FORMAT_ERROR = -2; static int SF_FILE_ERROR = -1; static int SF_OTHER_ERROR = -5; static int SF_PARAMS_ERROR = -3; static int SF_MEMORY_ERROR = -4; #include #include #include #include #include #include #include #include typedef enum _sf_ret { SF_RET_OK, SF_RET_ERR_PARA, SF_RET_ERR_MEM, SF_RET_ERR_NOT_SUPPORT = 0x04, SF_RET_ERR_OPEN_FILE = 0x08, SF_RET_ERR_DATA_UNINITED = 0x10, SF_RET_ERR_UNKNOWN = 0x20, SF_RET_ERR_END_OF_FILE = 0x40, SF_RET_ERR_DATA_UNREADABLE = 0x101, SF_RET_ERR_DATA_NOWRITEABLE = 0x102, }SF_RET; #define SF_PRINT_LOG(message) printf("Error occurred: %s \nError position:\nFile:%s \nLine:%d\n", message, __FILE__, __LINE__); static const char* sf_error_string[] = { "Good! Normal return!", "Your input params are wrong!", "Allocating memory failure! ", "Current version can not support!", "Opening file errors!", "Data are uninitialized!", "Unknown error!", "Arriving the end of the file!", "Data are waiting!", "Data length is not enough!" }; #define SF_LOG(level) \ { \ if (level == SF_RET_ERR_PARA){ \ SF_PRINT_LOG(sf_error_string[1]); \ } else if (level == SF_RET_ERR_MEM){ \ SF_PRINT_LOG(sf_error_string[2]); \ } else if (level == SF_RET_ERR_NOT_SUPPORT){ \ SF_PRINT_LOG(sf_error_string[3]); \ } else if (level == SF_RET_ERR_OPEN_FILE){ \ SF_PRINT_LOG(sf_error_string[4]); \ } else if (level == SF_RET_ERR_DATA_UNINITED){ \ SF_PRINT_LOG(sf_error_string[5]); \ } else if (level == SF_RET_ERR_UNKNOWN){ \ SF_PRINT_LOG(sf_error_string[6]); \ } else if (level == SF_RET_ERR_END_OF_FILE){ \ SF_PRINT_LOG(sf_error_string[7]); \ } else if (level == SF_RET_ERR_DATA_UNREADABLE){ \ SF_PRINT_LOG(sf_error_string[8]); \ } else if (level == SF_RET_ERR_DATA_NOWRITEABLE){ \ SF_PRINT_LOG(sf_error_string[9]); \ } \ } #endif ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/main.cpp ================================================ #include "stdafx.h" #include"f_error.h" #include"SFBITMAP.h" #include"SFImageReadWrite.h" #pragma comment(lib,"ZPhotoEngineIO.lib") int _tmain(int argc, char* argv[]) { char* jpgPath = "C:\\Users\\Administrator\\Desktop\\1.jpg"; char* outjpgPath = "C:\\Users\\Administrator\\Desktop\\Res.jpg"; long start = clock(); SF_ImageReadWrite* imgRW = new SF_ImageReadWrite(); int ret = imgRW->ReadImage(jpgPath); if(ret == SF_RET_OK) { unsigned char* pSrc = imgRW->sfBitmap->pPlaneData[0]; int w = imgRW->sfBitmap->lWidth; int h = imgRW->sfBitmap->lHeight; unsigned char* tempData = (unsigned char*)malloc(sizeof(unsigned char) * w * h * 4); memcpy(tempData, pSrc, sizeof(unsigned char) * w * h * 4); //Image Processing imgRW->SaveImage(outjpgPath,SF_IMAGE_JPG); } long end = clock(); imgRW->Destroy(); printf("JPG Time cost: %d ms.", (end - start)); return 0; } ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/stdafx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // ImageReadDemo.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/stdafx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #include "targetver.h" #include #include // TODO: reference additional headers your program requires here ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO/targetver.h ================================================ #pragma once // Including SDKDDKVer.h defines the highest available Windows platform. // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. #include ================================================ FILE: ZPHOTOENGINE/ZPhotoEngine_IO/ZPhotoIODEMO/ZPhotoIODEMO.sln ================================================  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZPhotoIODEMO", "ZPhotoIODEMO\ZPhotoIODEMO.vcxproj", "{EBA08A16-113E-4326-AA10-FA9C30338ED9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {EBA08A16-113E-4326-AA10-FA9C30338ED9}.Debug|Win32.ActiveCfg = Debug|Win32 {EBA08A16-113E-4326-AA10-FA9C30338ED9}.Debug|Win32.Build.0 = Debug|Win32 {EBA08A16-113E-4326-AA10-FA9C30338ED9}.Release|Win32.ActiveCfg = Release|Win32 {EBA08A16-113E-4326-AA10-FA9C30338ED9}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: ZPHOTOENGINE/android/ReadMe.txt ================================================ ʹ÷ 1ZphotoEngine.soŵandroid projectlibsĿ¼ 2ZPHOTOŵsrcĿ¼£ ================================================ FILE: ZPHOTOENGINE/android/ZPHOTO/PhotoEngine.java ================================================ package ZPHOTO; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.util.Log; public class PhotoEngine { static { System.loadLibrary("photoengine"); Log.d("loadlibrary","load photoengine done!"); } private static String LOG_TAG = "ZPhotoEngine"; public static AssetManager assetMgr = null; public static void initLib(AssetManager am) { assetMgr = am; } public static InputStream open_file_binary(String filepath) { InputStream stream = null; try { if (filepath == null) return null; stream = assetMgr.open(filepath); if (stream == null) return null; int len = stream.available(); if (!stream.markSupported()) Log.d(LOG_TAG, "markSupported = flase"); stream.mark(len); } catch (IOException e) { Log.e(LOG_TAG, e.getMessage()); if (e instanceof FileNotFoundException) { try { stream = new FileInputStream(filepath); int len = stream.available(); if (!stream.markSupported()) Log.d(LOG_TAG, "markSupported = flase"); stream.mark(len); } catch (Exception e2) { Log.e(LOG_TAG, e2.getMessage()); } } } return stream; } ////////////////////////PHOTO ENGINE LIBRARY////////////////////////// public native static int native_ZPHOTO_Saturation(Bitmap bitmap, int saturation); public native static int native_ZPHOTO_Lightness(Bitmap bitmap, int lightness); public native static int native_ZPHOTO_Invert(Bitmap bitmap); public native static int native_ZPHOTO_HueAndSaturation(Bitmap bitmap, int hue, int saturation); public native static int native_ZPHOTO_LinearBrightContrast(Bitmap bitmap, int bright, int contrast, int threshold); public native static int native_ZPHOTO_NLinearBrightContrast(Bitmap bitmap, int bright, int contrast, int threshold); public native static int native_ZPHOTO_Blackwhite(Bitmap bitmap, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta); public native static int native_ZPHOTO_Threshold(Bitmap bitmap, int threshold); public native static int native_ZPHOTO_ChannelMixProcess(Bitmap bitmap, int channel, int kr, int kg, int kb, int N, boolean singleColor, boolean constAdjust); public native static int native_ZPHOTO_FastestGaussFilter(Bitmap bitmap, float radius); public native static int native_ZPHOTO_HighPass(Bitmap bitmap, float radius); public native static int native_ZPHOTO_USM(Bitmap bitmap, float radius, int amount, int threshold); public native static int native_ZPHOTO_FindEdges(Bitmap bitmap); public native static int native_ZPHOTO_ImageBlendEffect(Bitmap basebitmap, Bitmap mixBitmap, int blendMode); public native static int native_ZPHOTO_ColorTemperature(Bitmap bitmap, int intensity); public native static int native_ZPHOTO_HighlightShadowPrecise(Bitmap bitmap, float highlight, float shadow); public native static int native_ZPHOTO_Exposure(Bitmap bitmap, int intensity); public native static int native_XIUSDK_GammaCorrect(Bitmap bitmap, int intensity); public native static int native_ZPHOTO_CalcWH(int[] inputImgSize, float angle, float scale, int transform_method, int[] outputImgSize,float[] H); public native static int native_ZPHOTO_ImageTransformation(Bitmap bitmap,Bitmap dstbitmap, float[] H, int Interpolation_method, int Transform_method); public native static int native_ZPHOTO_FastMeanFilter(Bitmap bitmap, int radius); public native static int native_ZPHOTO_SobelFilter(Bitmap bitmap); public native static int native_ZPHOTO_Posterize(Bitmap bitmap, int clusterNum); public native static int native_ZPHOTO_Fragment(Bitmap bitmap); public native static int native_ZPHOTO_MotionBlur(Bitmap bitmap, int angle, int distance); public native static int native_ZPHOTO_SurfaceBlur(Bitmap bitmap, int threshold, int radius); public native static int native_ZPHOTO_RadialBlur(Bitmap bitmap, int cenX, int cenY, int amount); public native static int native_ZPHOTO_ZoomBlur(Bitmap bitmap, int cenX, int cenY, int sampleRadius, int amount); public native static int native_ZPHOTO_Relief(Bitmap bitmap, int angle, int amount); public native static int native_ZPHOTO_Mean(Bitmap bitmap); public native static int native_ZPHOTO_Mosaic(Bitmap bitmap, int size); public native static int native_ZPHOTO_OverExposure(Bitmap bitmap); public native static int native_ZPHOTO_HistagramEqualize(Bitmap bitmap); public native static int native_ZPHOTO_Desaturate(Bitmap bitmap, int ratio); public native static int native_ZPHOTO_Curve(Bitmap bitmap, int destChannel, int[] knotsPos); public native static int native_ZPHOTO_AutoContrast(Bitmap bitmap); public native static int native_ZPHOTO_AutoContrastAdjustWithParameters(Bitmap bitmap,float shadowCorrectRatio, float highlightCorrectRatio); public native static int native_ZPHOTO_AutoColorGradation(Bitmap bitmap); public native static int native_ZPHOTO_AutoColorGradationAdjustWithParameters(Bitmap bitmap, float shadowCorrectRatio, float highlightCorrectRatio); public native static int native_ZPHOTO_Diffusion(Bitmap bitmap, int intensity); public native static int native_ZPHOTO_LSNBlur(Bitmap bitmap, int radius, int delta); public native static int native_ZPHOTO_MedianFilter(Bitmap bitmap, int radius); public native static int native_ZPHOTO_MaxFilter(Bitmap bitmap, int radius); public native static int native_ZPHOTO_MinFilter(Bitmap bitmap, int radius); public native static int native_ZPHOTO_GlowingEdges(Bitmap bitmap, int edgeSize, int edgeLightness, int edgeSmoothness); public native static int native_ZPHOTO_ImageWarpWave(Bitmap bitmap, int intensity); public native static int native_ZPHOTO_GammaCorrect(Bitmap bitmap, int intensity); public native static int native_ZPHOTO_NaturalSaturation(Bitmap bitmap, int saturation); public native static int native_ZPHOTO_ColorBalance(Bitmap bitmap, int cyan, int magenta, int yellow, int channel, boolean preserveLuminosity); public native static int native_ZPHOTO_ColorLevel(Bitmap bitmap, int destChannel, byte inputLeftLimit, float inputMiddle, byte inputRightLimit, byte outputLeftLimit , byte outputRightLimit); public native static int native_ZPHOTO_LUTFilter(Bitmap bitmap,Bitmap dstbitmap, int ratio); public native static int native_ZPHOTO_SmartBlurFilter(Bitmap bitmap, int size, int threshold); public native static int native_ZPHOTO_AnisotropicFilter(Bitmap bitmap, int iter, float k, float lambda, int offset); public native static int native_ZPHOTO_DisplacementFilter(Bitmap bitmap,Bitmap maskBitmap, int hRatio, int vRatio); public native static int native_ZPHOTO_NoiseEffect(Bitmap bitmap, int ratio, float sigma, float phase); } ================================================ FILE: ZPhotoEngine.h ================================================ /***************************************************************************** Copyright: Trent File name: ZPhotoEngine.h Description: ZPHOTO ENGINE LIBRARY FOR IMAGE PROCESSING LIKE PS Author: Trent Version: V3.6 Date: 2017-08-17 Mail: dongtingyueh@163.com *****************************************************************************/ #ifndef __T_PHOTOENGINE__ #define __T_PHOTOENGINE__ ////////////////////////////////////////////////////////////////////////////// //ͼģʽ const int BLEND_MODE_DARKEN = 1; const int BLEND_MODE_MULTIPLY = 2; const int BLEND_MODE_COLORBURN = 3; const int BLEND_MODE_LINEARBURN = 4; const int BLEND_MODE_DARKNESS = 5; const int BLEND_MODE_LIGHTEN = 6; const int BLEND_MODE_SCREEN = 7; const int BLEND_MODE_COLORDODGE = 8; const int BLEND_MODE_COLORLINEARDODGE = 9; const int BLEND_MODE_LIGHTCOLOR = 10; const int BLEND_MODE_OVERLAY = 11; const int BLEND_MODE_SOFTLIGHT = 12; const int BLEND_MODE_HARDLIGHT = 13; const int BLEND_MODE_VIVIDLIGHT = 14; const int BLEND_MODE_LINEARLIGHT = 15; const int BLEND_MODE_PINLIGHT = 16; const int BLEND_MODE_SOLIDCOLORMIXING = 17; const int BLEND_MODE_DIFFERENCE = 18; const int BLEND_MODE_EXCLUSION = 19; const int BLEND_MODE_SUBTRACTION = 20; const int BLEND_MODE_DIVIDE = 21; /////////////////////////////////////////////////////////////////////////////// #ifdef _MSC_VER #ifdef __cplusplus #define EXPORT extern "C" _declspec(dllexport) #else #define EXPORT __declspec(dllexport) #endif // /************************************************* Function: ZPHOTO_Saturation Description: Ͷȵ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride saturation-ͶֵΧ[0,512] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); /************************************************* Function: ZPHOTO_Posterize Description: ɫ. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride clusterNum-ɫΧ[2,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); /************************************************* Function: ZPHOTO_OverExposure Description: ع. Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride);//ع /************************************************* Function: ZPHOTO_Lightness Description: ȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride lightness-ֵΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness);//ȵ /************************************************* Function: ZPHOTO_Invert Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride);// /************************************************* Function: ZPHOTO_HueAndSaturation Description: ɫ౥Ͷȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride hue-ɫֵΧ[-180,180] saturation-ͶֵΧΪ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation);//ɫ౥Ͷȵ /************************************************* Function: ZPHOTO_HistagramEqualize Description: ɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride);//ɫ /************************************************* Function: ZPHOTO_Desaturate Description: ȥɫ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ȥɫ̶ȣ[0-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio);//ȥɫ /************************************************* Function: ZPHOTO_Curve Description: ߵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 knotsPos-XY飺ʼ+м+ĩβ㣬һspline Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); /************************************************* Function: ZPHOTO_CurveLevel Description: ɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride destChannel-ͨѡGrayͨ-0Rͨ-1Gͨ-2Bͨ-3 inputLeftLimit-СֵΧ[0,255] inputMiddle-мֵΧ[0,9.99] inputRightLimit-ֵΧ[0,255] outputLeftLimit-СֵΧ[0,255] outputRightLimit-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit);//ɫ׵ /************************************************* Function: ZPHOTO_NLinearBrightContrastAdjust Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-255,255] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_LinearBrightContrast Description: ȶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride brightness-ֵΧ[-100,100] contrast-ԱȶֵΧ[-100,100] threshold-ֵΧ[0,255]ĬֵΪ128 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold);//ȶԱȶȵ /************************************************* Function: ZPHOTO_Blackwhite Description: ڰ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride kRed-ɫ,Χ[-200,300] kGreen-ɫ,Χ[-200,300] kBlue-ɫ,Χ[-200,300] kYellow-ɫ,Χ[-200,300] kCyan-ɫ,Χ[-200,300] kMagenta-,Χ[-200,300] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta);//ڰ /************************************************* Function: ZPHOTO_AutoContrast Description: ԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoContrastAdjustWithParameters Description: ƵԶԱȶȵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//ԶԱȶ /************************************************* Function: ZPHOTO_AutoColorGradation Description: Զɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride);//Զɫ /************************************************* Function: ZPHOTO_AutoColorGradationAdjustWithParameters Description: ƵԶɫ׵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride shadowCorrectRatio-Ӱ޼Χ[0.00,9.99] highlightCorrectRatio-߹޼Χ[0.00,9.99] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio);//Զɫ /************************************************* Function: ZPHOTO_Threshold Description: ֵ(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold);//ֵ /************************************************* Function: ZPHOTO_ChannelMixProcess Description: ͨ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride channel-Red-0,Green-1,Blue-2,Gray-3 kr-RedͨΧ[-200,200] kg-GreenͨΧ[-200,200] kb-BlueͨΧ[-200,200] N-ڱΧ[-200,200] singleColor-Ƿɫɫ-trueɫ-false constAdjust-Ƿִгڣ-true,-false Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); /************************************************* Function: ZPHOTO_FastestGaussFilter Description: ٸ˹ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius);//˹˲ /************************************************* Function: ZPHOTO_HighPass Description: ߷ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹ģ뾶Χ[0,1000] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius);//߷ /************************************************* Function: ZPHOTO_USM Description: USM Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-˹뾶ΧΪ[0,1000] amount-񻯳̶ȣΧΪ[0,500] threshold-ֵΧΪ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); /************************************************* Function: ZPHOTO_FindEdges Description: ұԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride);//ұԵ ///////////////////////////////////////////////////////////////////////////////////////////////////// //ͼϹ /************************************************* Function: ZPHOTO_ModeDarken Description: 䰵ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarken(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeMultiply Description: Ƭģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorBurn Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearBurn Description: Խģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDarkness Description: ɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeLighten Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLighten(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeScreen Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeScreen(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorDodge Description: ɫģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeColorLinearDodge Description: ɫԼģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLightColor Description: dzɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeOverlay Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSoftLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeHardLight Description: ǿģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeVividLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeLinearLight Description: Թģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModePinLight Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModePinLight(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSolidColorMixing Description: ʵɫģʽ Input: baseRed-RֵΧ[0,255]ִкΪ baseGreen-GֵΧ[0,255]ִкΪ baseBlue-BֵΧ[0,255]ִкΪ mixRed-RֵΧ[0,255] mixRed-GֵΧ[0,255] mixRed-BֵΧ[0,255] Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); /************************************************* Function: ZPHOTO_ModeDifference Description: ֵģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDifference(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeExclusion Description: ųģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeSubtraction Description: ȥģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDivide Description: ģʽ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDivide(int basePixel,int mixPixel); /************************************************* Function: ZPHOTO_ModeDesaturate Description: ȥɫ Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeDesaturate(int red,int green,int blue); /************************************************* Function: ZPHOTO_ModeColorInvert Description: Input: basePixel-ֵΧ[0,255] mixPixel-ֵΧ[0,255] Output: . Return: ͼϽֵΧ[0,255]. Others: . *************************************************/ EXPORT int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); /************************************************* Function: ZPHOTO_ImageBlendEffect Description: ͼ Input: baseData-ͼͼBufferʽΪ32λBGRA width-ͼ height-ͼ߶ stride-ͼStride mixData-ͼͼBufferСͼͼһ blendMode-ͼģʽ Output: . Return: 0-ɹʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode); ///////////////////////////////////////////////////////////////////////////////////////////////////// //չ /************************************************* Function: ZPHOTO_ColorTemperature Description: ɫµ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɫǿȣΧ[-50,50]intensity < 0ɫintensity = 0,ԭͼintensity > 0ůɫ Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Shadow Description: Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ӰǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Shadow(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_Highlight Description: ߹ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--߹ǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Highlight(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_HighlightShadowPrecise Description: ߹Ӱ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride highlight--߹ǿֵȡֵΧΪ[-200,100] shadow-ӰǿֵȡֵΧΪ[-200,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); /************************************************* Function: ZPHOTO_Exposure Description: ع Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity--عǿֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_CalcWH Description: ͼ任֮Ŀ߼任HýӿZPHOTO_ImageTransformation Input: inputImgSize--ͼϢ angle--תǶֵȡֵΧΪ[-360-360] scale--ű任ֵȡֵ0 transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 outputImgSize--ͼϢ H--任飬Ϊ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); /************************************************* Function: ZPHOTO_ImageTransformation Description: ͼ任 Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ srcImgSize--ԭʼͼϢ dstData--ͼBufferСɽӿZPHOTO_CalcWH dstImgSize--ĿͼϢ H--任飬Ϊ6 Interpolation_method--ֵѡinterpolation_bilinear,interpolation_nearest Transform_method--任 transform_scaleű任, ȡֵΪ0 transform_rotationת任, ȡֵΪ1 transform_rotation_scaleת任, ȡֵΪ2 transform_affine任, ȡֵΪ3 transform_mirror_hˮƽ任, ȡֵΪ4 transform_mirror_vֱ任, ȡֵΪ5 transform_offsetƽƱ任, ȡֵΪ6 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); /************************************************* Function: ZPHOTO_FastMeanFilter Description: ֵģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius--ֵ˲뾶ȡֵΧΪ[0,width / 2] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); /************************************************* Function: ZPHOTO_SobelFilter Description: SobelԵ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); //For Android Development /************************************************* Function: ZPHOTO_RGBA2BGRA Description: RGBAʽתBGRAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_BGRA2RGBA Description: BGRAʽתRGBAʽҪΪandroid Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Fragment Description: Ƭ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_MotionBlur Description: ˶ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-˶ģǶֵȡֵΧΪ[0,360] distance-˶ģֵȡֵΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); /************************************************* Function: ZPHOTO_SurfaceBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride threshold-ģֵֵȡֵΧΪ[0,255] radius-ģ뾶ֵȡֵΧΪ[0,10] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); /************************************************* Function: ZPHOTO_RadialBlur Description: תģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ѡģX cenY-תģY amount-תģ̶ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); /************************************************* Function: ZPHOTO_ZoomBlur Description: ģ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cenX-ģX cenY-ģY sampleRadius-ģ뾶ΧΪ[0-255] amount-ģ̶,ΧΪ[1-100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); /************************************************* Function: ZPHOTO_Relief Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride angle-ǶȣΧΪ[0-360] amount-̶,ΧΪ[0-500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); /************************************************* Function: ZPHOTO_Mean Description: ƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); /************************************************* Function: ZPHOTO_Mosaic Description: Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-Mosaic뾶,ΧΪ[0,200] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Mosaic(unsigned char* srcData, int width, int height, int stride, int size); /************************************************* Function: ZPHOTO_ColorBalance Description: ɫƽ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride cyan-ɫΧΪ[-100,100] magenta-죬ΧΪ[-100,100] yellow-ɫΧΪ[-100,100] channel-ͨѡRGB-0,R-1,G-2,B-3 preserveLuminosity-true:ȣfalse: Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); /************************************************* Function: ZPHOTO_Diffusion Description: ɢ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-ɢ̶ȣΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); /************************************************* Function: ZPHOTO_LSNBlur Description: LSNBlur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-LSNBlur뾶ΧΪ[0,200] delta-[0,500] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); /************************************************* Function: ZPHOTO_MedianFilter Description: ֵ˲(мɫ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride,int radius); /************************************************* Function: ZPHOTO_MaxFilter Description: ֵ˲(ֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_MinFilter Description: Сֵ˲(Сֵ) Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride radius-ģ뾶ֵȡֵΧΪ[0,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); /************************************************* Function: ZPHOTO_GlowingEdges Description: Ե˾ Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride edgeSize-ԵֵȡֵΧΪ[1,14] edgeLightness-ԵֵȡֵΧΪ[0,20] edgeSmoothness-ƽȣȡֵΧΪ[1,15] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); /************************************************* Function: ZPHOTO_ImageWarpWave Description: Wave Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽִкΪͼ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-γ̶ȣΧ[0, 100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); /************************************************* Function: ZPHOTO_RGBToYCbCr Description: RGBתYCbCr Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Y-Y Cb-Cb Cr-Cr Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); /************************************************* Function: ZPHOTO_YCbCrToRGB Description: YCbCrתRGB Input: Y-Y Cb-Cb Cr-Cr Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); /************************************************* Function: ZPHOTO_RGBToLab Description: RGBתLAB Input: Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); /************************************************* Function: ZPHOTO_LabToRGB Description: LABתRGB Input: L-YΧ[0,255] A-IΧ[0,255] B-Q, Χ[0,255] Red-RΧ[0,255] Green-GΧ[0,255] Blue-BΧ[0,255] Output: . Return: . Others: . *************************************************/ EXPORT void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); /************************************************* Function: ZPHOTO_GammaCorrect Description: Gamma Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride intensity-GammaΧ[1,50] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); /******************************************************************************* * Function Name : Natural Saturation * Description : ȻͶ * Input srcData : image data * Input width : image width * Input height : image height * Input stride : image stride * Input saturation : saturation value to adjust from -100 to 100 * Output : None * Return : 0-success, others failed *******************************************************************************/ EXPORT int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); EXPORT int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); /****************************************************Update*************************************************** ****************************************************Date:2018-06-21******************************************* Content: Smart blur filter Anisotropic Filter *************************************************************************************************************/ /************************************************* Function: ZPHOTO_SmartBlurFilter Description: Smart Blur Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride size-ģ뾶ֵȡֵΧΪ[0,100] threshold-ֵΧ[0,255] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); /************************************************* Function: ZPHOTO_AnisotropicFilter Description: Anisotropic Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride iter-ȡֵΧΪ[0,100] k-ɢϵΧ[0,] lambda-[0,0.35],default 0.25 offset-[0,10],default 3 Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); /************************************************* Function: ZPHOTO_DisplacementFilter Description: Displacement Filter Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride maskData-ûͼʽΪ32λBGRAʽ mWidth-ûͼ mHeight-ûͼ߶ mStride-ûͼStride hRatio-ˮƽΧ[-100,100] vRatio-ֱΧ[-100,100] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); /************************************************* Function: ZPHOTO_NoiseEffect Description: Noise effect Input: srcData-ԭʼͼ񣬸ʽΪ32λBGRAʽ width-ԭʼͼ height-ԭʼͼ߶ stride-ԭʼͼStride ratio-ͼĻϱΧ[0,100] sigma-Χ[0,] phase-ȣΧ[0,] Output: . Return: 0-ɹ,ʧ. Others: . *************************************************/ EXPORT int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #else #ifdef __cplusplus extern "C" { #endif // int ZPHOTO_Exposure(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_Saturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_Posterize(unsigned char *srcData, int width, int height, int stride, int clusterNum); int ZPHOTO_OverExposure(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_Lightness(unsigned char* srcData,int width, int height, int stride, int lightness); int ZPHOTO_Invert(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_HueAndSaturation(unsigned char* srcData,int width, int height, int stride,int hue, int saturation); int ZPHOTO_HistagramEqualize(unsigned char* srcData,int width, int height, int stride); int ZPHOTO_Desaturate(unsigned char *srcData, int width, int height, int stride, int ratio); int ZPHOTO_Curve(unsigned char* srcData, int width, int height, int stride, int dstChannel, int knotsPos[6]); int ZPHOTO_ColorLevel(unsigned char * srcData , int width, int height ,int stride , int destChannel, unsigned char inputLeftLimit, float inputMiddle, unsigned char inputRightLimit, unsigned char outputLeftLimit , unsigned char outputRightLimit); int ZPHOTO_NLinearBrightContrast(unsigned char* srcData,int width,int height,int stride,int bright,int contrast,int threshold); int ZPHOTO_LinearBrightContrast(unsigned char* srcData,int width, int height, int stride, int brightness, int contrast,int threshold); int ZPHOTO_Blackwhite(unsigned char *srcData, int width, int height, int stride, int kRed, int kGreen, int kBlue, int kYellow, int kCyan, int kMagenta); int ZPHOTO_AutoContrast(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoContrastAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_AutoColorGradation(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_AutoColorGradationAdjustWithParameters(unsigned char *srcData, int width, int height, int stride, float shadowCorrectRatio, float highlightCorrectRatio); int ZPHOTO_Threshold(unsigned char *srcData, int width, int height, int stride, int threshold); int ZPHOTO_HighPass(unsigned char* srcData,int width, int height,int stride,float mRadius); int ZPHOTO_ChannelMixProcess(unsigned char* srcData, int width, int height, int stride, int channel, int kr, int kg, int kb, int N, bool singleColor, bool constAdjust); int ZPHOTO_USM(unsigned char* srcData,int width, int height,int stride,float radius, int amount, int threshold); int ZPHOTO_FindEdges(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_Fragment(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_MotionBlur(unsigned char* srcData,int width, int height, int stride, int angle, int distance); int ZPHOTO_SurfaceBlur(unsigned char *srcData, int width, int height, int stride,int threshold, int radius); //V1.2 int ZPHOTO_RadialBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int amount); int ZPHOTO_ZoomBlur(unsigned char* srcData, int width, int height ,int stride, int cenX, int cenY, int sampleRadius, int amount); int ZPHOTO_Relief(unsigned char *srcData, int width, int height, int stride, int angle, int amount); int ZPHOTO_Mean(unsigned char *srcData, int width, int height, int stride); int ZPHOTO_ColorBalance(unsigned char* srcData, int width, int height, int stride, int cyan, int magenta, int yellow, int channel, bool preserveLuminosity); int ZPHOTO_LSNBlur(unsigned char* srcData, int width, int height, int stride, int radius, int delta); int ZPHOTO_Mosaic(unsigned char *srcData, int width, int height, int stride, int size); int ZPHOTO_Diffusion(unsigned char* srcData,int width, int height,int stride,int intensity); int ZPHOTO_MedianFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MaxFilter(unsigned char *srcData, int width, int height, int stride, int radius); int ZPHOTO_MinFilter(unsigned char *srcData, int width, int height, int stride, int radius); void ZPHOTO_RGBToYCbCr(int R, int G, int B, int*Y,int*Cb, int* Cr); void ZPHOTO_YCbCrToRGB(int Y, int Cb, int Cr, int*Red,int*Green, int* Blue); void ZPHOTO_RGBToLab(int Red, int Green, int Blue, int* L, int *A, int *B); void ZPHOTO_LabToRGB(int L, int A, int B, int* Red, int* Green, int* Blue); ///ͼϹ int ZPHOTO_ModeDarken(int basePixel,int mixPixel); int ZPHOTO_ModeMultiply(int basePixel,int mixPixel); int ZPHOTO_ModeColorBurn(int basePixel,int mixPixel); int ZPHOTO_ModeLinearBurn(int basePixel,int mixPixel); int ZPHOTO_ModeDarkness(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeLighten(int basePixel,int mixPixel); int ZPHOTO_ModeScreen(int basePixel,int mixPixel); int ZPHOTO_ModeColorDodge(int basePixel,int mixPixel); int ZPHOTO_ModeColorLinearDodge(int basePixel,int mixPixel); int ZPHOTO_ModeLightColor(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeOverlay(int basePixel,int mixPixel); int ZPHOTO_ModeSoftLight(int basePixel,int mixPixel); int ZPHOTO_ModeHardLight(int basePixel,int mixPixel); int ZPHOTO_ModeVividLight(int basePixel,int mixPixel); int ZPHOTO_ModeLinearLight(int basePixel,int mixPixel); int ZPHOTO_ModePinLight(int basePixel,int mixPixel); int ZPHOTO_ModeSolidColorMixing(int *baseRed,int *baseGreen,int *baseBlue,int mixRed,int mixGreen,int mixBlue); int ZPHOTO_ModeDifference(int basePixel,int mixPixel); int ZPHOTO_ModeExclusion(int basePixel,int mixPixel); int ZPHOTO_ModeSubtraction(int basePixel,int mixPixel); int ZPHOTO_ModeDivide(int basePixel,int mixPixel); int ZPHOTO_ModeDesaturate(int red,int green,int blue); int ZPHOTO_ModeColorInvert(int *red,int *green,int *blue); int ZPHOTO_ImageBlendEffect(unsigned char* baseData, int width, int height, int stride, unsigned char* mixData, int blendMode);//ͼ //չ int ZPHOTO_FastestGaussFilter(unsigned char* srcData,int width, int height,int stride,float radius); int ZPHOTO_ColorTemperature(unsigned char* srcData,int width, int height, int stride, int intensity); int ZPHOTO_CalcWH( int inputImgSize[2], float angle, float scale, int transform_method, int outputImgSize[2],float H[]); int ZPHOTO_ImageTransformation(unsigned char *srcData, int srcImgSize[2], unsigned char *dstData, int dstImgSize[2], float H[], int Interpolation_method, int Transform_method); int ZPHOTO_FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, int radius); int ZPHOTO_SobelFilter(unsigned char *srcData, int width, int height,int stride); int ZPHOTO_GlowingEdges(unsigned char* srcData, int width ,int height, int stride, int edgeSize, int edgeLightness, int edgeSmoothness); int ZPHOTO_ImageWarpWave(unsigned char *srcData, int width, int height, int stride, int intensity); //For Android Development int ZPHOTO_RGBA2BGRA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_BGRA2RGBA(unsigned char* srcData, int width, int height, int stride); int ZPHOTO_GammaCorrect(unsigned char* srcData, int width, int height, int stride, int intensity); int ZPHOTO_HighlightShadowPrecise(unsigned char* srcData,int width, int height, int stride, float highlight, float shadow); int ZPHOTO_NaturalSaturation(unsigned char* srcData,int width, int height, int stride, int saturation); int ZPHOTO_LUTFilter(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map, int ratio); int ZPHOTO_SmartBlurFilter(unsigned char* srcData, int width, int height, int stride, int size, int threshold); int ZPHOTO_AnisotropicFilter(unsigned char* srcData, int width, int height, int stride, int iter, float k, float lambda = 0.25, int offset = 3); int ZPHOTO_DisplacementFilter(unsigned char* srcData, int width, int height, int stride, unsigned char* maskData, int mWidth, int mHeight, int mStride, int hRatio, int vRatio); int ZPHOTO_NoiseEffect(unsigned char *srcData, int width, int height, int stride, int ratio, float sigma, float phase); #ifdef __cplusplus } #endif #endif #endif