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