updateImageCompress
This commit is contained in:
134
ImageCompress/Untitled03.nsi
Normal file
134
ImageCompress/Untitled03.nsi
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
; <20>ýű<C3BD>ʹ<EFBFBD><CAB9> HM VNISEdit <20>ű<EFBFBD><C5B1>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><F2B5BCB2><EFBFBD>
|
||||||
|
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>峣<EFBFBD><E5B3A3>
|
||||||
|
!define PRODUCT_NAME "ImageCompress"
|
||||||
|
!define PRODUCT_VERSION "1.1"
|
||||||
|
!define PRODUCT_PUBLISHER "52pojie.cn @ flt"
|
||||||
|
!define PRODUCT_URL "https://www.flt6.top/article/compressImageTool"
|
||||||
|
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\7z.exe"
|
||||||
|
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
||||||
|
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
|
||||||
|
|
||||||
|
SetCompressor lzma
|
||||||
|
|
||||||
|
; ------ MUI <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>涨<EFBFBD><E6B6A8> (1.67 <20>汾<EFBFBD><E6B1BE><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>) ------
|
||||||
|
!include "MUI.nsh"
|
||||||
|
|
||||||
|
; MUI Ԥ<><D4A4><EFBFBD>峣<EFBFBD><E5B3A3>
|
||||||
|
!define MUI_ABORTWARNING
|
||||||
|
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
|
||||||
|
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
|
||||||
|
|
||||||
|
; <20><>ӭҳ<D3AD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
|
; <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_COMPONENTS
|
||||||
|
; <20><>װĿ¼ѡ<C2BC><D1A1>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
|
||||||
|
; <20><>װж<D7B0>ع<EFBFBD><D8B9><EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
|
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||||
|
|
||||||
|
; <20><>װԤ<D7B0>ͷ<EFBFBD><CDB7>ļ<EFBFBD>
|
||||||
|
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
|
||||||
|
; ------ MUI <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>涨<EFBFBD><E6B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------
|
||||||
|
|
||||||
|
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
||||||
|
OutFile "Setup.exe"
|
||||||
|
InstallDir "$PROGRAMFILES\ImageCompress"
|
||||||
|
InstallDirRegKey HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
|
||||||
|
ShowInstDetails show
|
||||||
|
ShowUnInstDetails show
|
||||||
|
BrandingText " "
|
||||||
|
|
||||||
|
Section "<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>" SEC01
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
SetOverwrite ifnewer
|
||||||
|
File "E:\tem\0821\b.dist\*.*"
|
||||||
|
WriteRegStr HKCR "Directory\Background\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ͼƬ"
|
||||||
|
WriteRegStr HKCR "Directory\Background\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%V"'
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD>ʽ" SEC03
|
||||||
|
WriteRegStr HKCR ".png\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".png\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".jpg\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".jpg\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".gif\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".gif\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".webp\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".webp\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".jpeg\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".jpeg\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section -AdditionalIcons
|
||||||
|
CreateDirectory "$SMPROGRAMS\ImageCompress"
|
||||||
|
CreateShortCut "$SMPROGRAMS\ImageCompress\Uninstall.lnk" "$INSTDIR\uninst.exe"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section -Post
|
||||||
|
WriteUninstaller "$INSTDIR\uninst.exe"
|
||||||
|
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\7z.exe"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
#-- <20><><EFBFBD><EFBFBD> NSIS <20>ű<EFBFBD><C5B1>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Function <20><><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Section <20><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>Ա<EFBFBD><D4B1>ⰲװ<E2B0B2><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>Ԥ֪<D4A4><D6AA><EFBFBD><EFBFBD><EFBFBD>⡣--#
|
||||||
|
|
||||||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} ""
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>path<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ffmpeg<EFBFBD><EFBFBD><EFBFBD>빴ѡ"
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "<EFBFBD><EFBFBD>ͼƬ<EFBFBD>Ҽ<EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jpg, jpeg, gif, webp, png<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>װ"
|
||||||
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||||
|
|
||||||
|
/******************************
|
||||||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> *
|
||||||
|
******************************/
|
||||||
|
|
||||||
|
Section Uninstall
|
||||||
|
Delete "$INSTDIR\uninst.exe"
|
||||||
|
Delete "$INSTDIR\*.*"
|
||||||
|
|
||||||
|
Delete "$SMPROGRAMS\ImageCompress\Uninstall.lnk"
|
||||||
|
|
||||||
|
RMDir "$SMPROGRAMS\ImageCompress"
|
||||||
|
|
||||||
|
RMDir "$INSTDIR"
|
||||||
|
|
||||||
|
Delete "$APPDATA\compressImage\config.txt"
|
||||||
|
RMDir "$APPDATA\compressImage"
|
||||||
|
|
||||||
|
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
||||||
|
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
|
||||||
|
DeleteRegKey HKCR "Directory\Background\shell\ImageCompress"
|
||||||
|
DeleteRegKey HKCR "*\shell\ImageCompress"
|
||||||
|
DeleteRegKey HKCR ".webp\shell\ImageCompress"
|
||||||
|
DeleteRegKey HKCR ".png\shell\ImageCompress"
|
||||||
|
DeleteRegKey HKCR ".jpg\shell\ImageCompress"
|
||||||
|
DeleteRegKey HKCR ".jpeg\shell\ImageCompress"
|
||||||
|
DeleteRegKey HKCR ".gif\shell\ImageCompress"
|
||||||
|
SetAutoClose false
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
#-- <20><><EFBFBD><EFBFBD> NSIS <20>ű<EFBFBD><C5B1>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Function <20><><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Section <20><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>Ա<EFBFBD><D4B1>ⰲװ<E2B0B2><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>Ԥ֪<D4A4><D6AA><EFBFBD><EFBFBD><EFBFBD>⡣--#
|
||||||
|
|
||||||
|
Function un.onInit
|
||||||
|
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "<EFBFBD><EFBFBD>ȷʵҪ<EFBFBD><EFBFBD>ȫ<EFBFBD>Ƴ<EFBFBD> $(^Name) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" IDYES +2
|
||||||
|
Abort
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function un.onUninstSuccess
|
||||||
|
HideWindow
|
||||||
|
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) <20>ѳɹ<D1B3><C9B9>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>"
|
||||||
|
FunctionEnd
|
142
ImageCompress/Untitled03_full.nsi
Normal file
142
ImageCompress/Untitled03_full.nsi
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
; <20>ýű<C3BD>ʹ<EFBFBD><CAB9> HM VNISEdit <20>ű<EFBFBD><C5B1>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><F2B5BCB2><EFBFBD>
|
||||||
|
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>峣<EFBFBD><E5B3A3>
|
||||||
|
!define PRODUCT_NAME "ImageCompress"
|
||||||
|
!define PRODUCT_VERSION "1.1"
|
||||||
|
!define PRODUCT_PUBLISHER "52pojie.cn @ flt"
|
||||||
|
!define PRODUCT_URL "https://www.flt6.top/article/compressImageTool"
|
||||||
|
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\7z.exe"
|
||||||
|
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
||||||
|
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
|
||||||
|
|
||||||
|
SetCompressor lzma
|
||||||
|
|
||||||
|
; ------ MUI <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>涨<EFBFBD><E6B6A8> (1.67 <20>汾<EFBFBD><E6B1BE><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>) ------
|
||||||
|
!include "MUI.nsh"
|
||||||
|
|
||||||
|
; MUI Ԥ<><D4A4><EFBFBD>峣<EFBFBD><E5B3A3>
|
||||||
|
!define MUI_ABORTWARNING
|
||||||
|
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
|
||||||
|
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
|
||||||
|
|
||||||
|
; <20><>ӭҳ<D3AD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
|
; <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_COMPONENTS
|
||||||
|
; <20><>װĿ¼ѡ<C2BC><D1A1>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
|
||||||
|
; <20><>װж<D7B0>ع<EFBFBD><D8B9><EFBFBD>ҳ<EFBFBD><D2B3>
|
||||||
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
|
|
||||||
|
; <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||||
|
|
||||||
|
; <20><>װԤ<D7B0>ͷ<EFBFBD><CDB7>ļ<EFBFBD>
|
||||||
|
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
|
||||||
|
; ------ MUI <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>涨<EFBFBD><E6B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------
|
||||||
|
|
||||||
|
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
||||||
|
OutFile "Setup.exe"
|
||||||
|
InstallDir "$PROGRAMFILES\ImageCompress"
|
||||||
|
InstallDirRegKey HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
|
||||||
|
ShowInstDetails show
|
||||||
|
ShowUnInstDetails show
|
||||||
|
BrandingText " "
|
||||||
|
|
||||||
|
Section "<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>" SEC01
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
SetOverwrite ifnewer
|
||||||
|
File "E:\tem\0821\b.dist\*.*"
|
||||||
|
WriteRegStr HKCR "Directory\Background\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ͼƬ"
|
||||||
|
WriteRegStr HKCR "Directory\Background\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%V"'
|
||||||
|
WriteRegStr HKCR "*\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR "*\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
|
||||||
|
Section "ffmpeg" SEC02
|
||||||
|
File "E:\tem\0821\compress\ffmpeg-essentials.7z"
|
||||||
|
File "E:\tem\0821\compress\7z.exe"
|
||||||
|
File "E:\tem\0821\compress\7z.dll"
|
||||||
|
ExecWait '"$INSTDIR\7z.exe" e -aoa ffmpeg-essentials.7z ffmpeg-2024-08-18-git-7e5410eadb-essentials_build/bin/ffmpeg.exe'
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD>ʽ" SEC03
|
||||||
|
WriteRegStr HKCR ".png\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".png\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".jpg\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".jpg\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".gif\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".gif\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".webp\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".webp\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
WriteRegStr HKCR ".jpeg\shell\ImageCompress" "" "ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ"
|
||||||
|
WriteRegStr HKCR ".jpeg\shell\ImageCompress\command" "" '"$INSTDIR\b.exe" "%1"'
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section -AdditionalIcons
|
||||||
|
CreateDirectory "$SMPROGRAMS\ImageCompress"
|
||||||
|
CreateShortCut "$SMPROGRAMS\ImageCompress\Uninstall.lnk" "$INSTDIR\uninst.exe"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section -Post
|
||||||
|
WriteUninstaller "$INSTDIR\uninst.exe"
|
||||||
|
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\7z.exe"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
||||||
|
Delete "$INSTDIR\7z.exe"
|
||||||
|
Delete "$INSTDIR\7z.dll"
|
||||||
|
Delete "$INSTDIR\ffmpeg-essentials.7z"
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
#-- <20><><EFBFBD><EFBFBD> NSIS <20>ű<EFBFBD><C5B1>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Function <20><><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Section <20><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>Ա<EFBFBD><D4B1>ⰲװ<E2B0B2><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>Ԥ֪<D4A4><D6AA><EFBFBD><EFBFBD><EFBFBD>⡣--#
|
||||||
|
|
||||||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} ""
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>path<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ffmpeg<EFBFBD><EFBFBD><EFBFBD>빴ѡ"
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "<EFBFBD><EFBFBD>ͼƬ<EFBFBD>Ҽ<EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͼƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jpg, jpeg, gif, webp, png<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>װ"
|
||||||
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||||
|
|
||||||
|
/******************************
|
||||||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> *
|
||||||
|
******************************/
|
||||||
|
|
||||||
|
Section Uninstall
|
||||||
|
Delete "$INSTDIR\uninst.exe"
|
||||||
|
Delete "$INSTDIR\*.*"
|
||||||
|
|
||||||
|
Delete "$SMPROGRAMS\ImageCompress\Uninstall.lnk"
|
||||||
|
|
||||||
|
RMDir "$SMPROGRAMS\ImageCompress"
|
||||||
|
|
||||||
|
RMDir "$INSTDIR"
|
||||||
|
|
||||||
|
Delete "$APPDATA\compressImage\config.txt"
|
||||||
|
RMDir "$APPDATA\compressImage"
|
||||||
|
|
||||||
|
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
||||||
|
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
|
||||||
|
DeleteRegKey HKCR "Directory\Background\shell\ImageCompress"
|
||||||
|
DeleteRegKey HKCR "*\shell\ImageCompress"
|
||||||
|
SetAutoClose false
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
#-- <20><><EFBFBD><EFBFBD> NSIS <20>ű<EFBFBD><C5B1>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Function <20><><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Section <20><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>Ա<EFBFBD><D4B1>ⰲװ<E2B0B2><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>Ԥ֪<D4A4><D6AA><EFBFBD><EFBFBD><EFBFBD>⡣--#
|
||||||
|
|
||||||
|
Function un.onInit
|
||||||
|
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "<EFBFBD><EFBFBD>ȷʵҪ<EFBFBD><EFBFBD>ȫ<EFBFBD>Ƴ<EFBFBD> $(^Name) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" IDYES +2
|
||||||
|
Abort
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function un.onUninstSuccess
|
||||||
|
HideWindow
|
||||||
|
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) <20>ѳɹ<D1B3><C9B9>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>"
|
||||||
|
FunctionEnd
|
@ -2,37 +2,46 @@ from subprocess import Popen,PIPE
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from multiprocessing import Pool
|
from multiprocessing import Pool
|
||||||
from sys import argv
|
from sys import argv
|
||||||
|
from os import environ
|
||||||
|
|
||||||
SINGLE=False
|
def main(file:Path,targetPath:Path,TARGET_SIZE,MINSIZE,SINGLE):
|
||||||
|
|
||||||
def main(file:Path,TARGET_SIZE,MINSIZE,compressdir):
|
|
||||||
if SINGLE:print(f"Process {str(file)}",end="",flush=True)
|
if SINGLE:print(f"Process {str(file)}",end="",flush=True)
|
||||||
else:cnt=0
|
else:cnt=0
|
||||||
if (compressdir/file.name).exists():
|
if targetPath.exists():
|
||||||
if SINGLE:
|
if SINGLE:
|
||||||
print(f" file already exists. Check it.")
|
print(f" file already exists. Check it.")
|
||||||
exit()
|
exit()
|
||||||
else:
|
else:
|
||||||
print(f"{compressdir/file.name} file already exists. Check it.")
|
print(f"{targetPath} file already exists. Check it.")
|
||||||
return None
|
return None
|
||||||
with open(file,"rb") as f:
|
inp=file.read_bytes()
|
||||||
inp=f.read()
|
|
||||||
proc=Popen(f"ffmpeg.exe -hide_banner -i - -vf \"scale=-1:1600:bilinear\" -f mjpeg -",stderr=PIPE,stdout=PIPE,stdin=PIPE)
|
proc=Popen(f"ffmpeg.exe -hide_banner -i - -vf \"scale=-1:1600:bilinear\" -f mjpeg -",stderr=PIPE,stdout=PIPE,stdin=PIPE)
|
||||||
out,_=proc.communicate(inp)
|
out,_=proc.communicate(inp)
|
||||||
|
suffix=file.suffix[1:]
|
||||||
|
mapper={
|
||||||
|
"jpg":"mjpeg",
|
||||||
|
"jpeg":"mjpeg",
|
||||||
|
"png":"image2pipe",
|
||||||
|
"webp":"webp",
|
||||||
|
"gif":"gif"
|
||||||
|
}
|
||||||
|
targetFmt=mapper.get(suffix,"mjpeg")
|
||||||
|
|
||||||
if SINGLE:print(".",end="",flush=True)
|
if SINGLE:print(".",end="",flush=True)
|
||||||
else:cnt+=1
|
else:cnt+=1
|
||||||
size=1600
|
size=1600
|
||||||
delta=abs(len(out)-TARGET_SIZE)//200
|
delta=abs(len(out)-TARGET_SIZE)//100
|
||||||
while True:
|
while True:
|
||||||
lastDelta=delta
|
lastDelta=delta
|
||||||
delta=abs(len(out)-TARGET_SIZE)//200
|
delta=abs(len(out)-TARGET_SIZE)//100
|
||||||
if delta>lastDelta:
|
if delta>lastDelta:
|
||||||
delta=lastDelta*3//4
|
delta=lastDelta*3//4
|
||||||
|
# print(delta,len(out)//1024,size)
|
||||||
if delta<10:
|
if delta<10:
|
||||||
while len(out)>TARGET_SIZE:
|
while len(out)>TARGET_SIZE:
|
||||||
size-=10
|
size-=10
|
||||||
proc=Popen(f"ffmpeg.exe -hide_banner -i - -vf \"scale=-1:{str(size)}:bilinear\" -f mjpeg -",stderr=PIPE,stdout=PIPE,stdin=PIPE)
|
proc=Popen(f"ffmpeg.exe -hide_banner -i - -vf \"scale=-1:{str(size)}:bilinear\" -f {targetFmt} -",stderr=PIPE,stdout=PIPE,stdin=PIPE)
|
||||||
out,_=proc.communicate(inp)
|
out,err=proc.communicate(inp)
|
||||||
if SINGLE:print(".",end="",flush=True)
|
if SINGLE:print(".",end="",flush=True)
|
||||||
else:cnt+=1
|
else:cnt+=1
|
||||||
break
|
break
|
||||||
@ -44,29 +53,56 @@ def main(file:Path,TARGET_SIZE,MINSIZE,compressdir):
|
|||||||
size+=delta
|
size+=delta
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
proc=Popen(f"ffmpeg.exe -hide_banner -i - -vf \"scale=-1:{str(size)}:bilinear\" -f mjpeg -",stderr=PIPE,stdout=PIPE,stdin=PIPE)
|
proc=Popen(f"ffmpeg.exe -hide_banner -i - -vf \"scale=-1:{str(size)}:bilinear\" -f {targetFmt} -",stderr=PIPE,stdout=PIPE,stdin=PIPE)
|
||||||
out,_=proc.communicate(inp)
|
out,err=proc.communicate(inp)
|
||||||
if SINGLE:print(".",end="",flush=True)
|
if SINGLE:print(".",end="",flush=True)
|
||||||
else:cnt+=1
|
else:cnt+=1
|
||||||
with open(compressdir/file.name,"wb") as f:
|
if targetFmt=="webp":
|
||||||
f.write(out)
|
proc=Popen(f"ffmpeg -hide_banner -i - {str(targetPath.resolve())}",stdin=PIPE,stderr=PIPE)
|
||||||
|
proc.communicate(out)
|
||||||
|
else:
|
||||||
|
targetPath.write_bytes(out)
|
||||||
if SINGLE:print(" Success")
|
if SINGLE:print(" Success")
|
||||||
else:return file,cnt
|
else:return file,cnt
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
SINGLE=False
|
||||||
|
# argv.append("test/types")
|
||||||
if len(argv)!=2:
|
if len(argv)!=2:
|
||||||
print(f"Usage: {__file__} dir")
|
print(f"Usage: {__file__} dir/file")
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
|
TARGET_SIZE=input("Target size(k): ")
|
||||||
|
MINSIZE=input("The minimum size allowed(k): ")
|
||||||
|
|
||||||
|
config=Path(environ.get("APPDATA")+"/compressImage/config.txt")
|
||||||
|
if TARGET_SIZE=="":
|
||||||
|
if config.exists():
|
||||||
|
TARGET_SIZE=config.read_text()
|
||||||
|
print("Using last target size:",TARGET_SIZE)
|
||||||
|
else:
|
||||||
|
while TARGET_SIZE!="":
|
||||||
|
print("Target size is empty and the application not been used.")
|
||||||
|
TARGET_SIZE=input("Target size(k): ")
|
||||||
|
config.parent.mkdir(exist_ok=True)
|
||||||
|
config.touch(exist_ok=True)
|
||||||
|
config.write_text(TARGET_SIZE)
|
||||||
|
TARGET_SIZE=int(TARGET_SIZE)*1024
|
||||||
|
|
||||||
|
if MINSIZE=="":
|
||||||
|
MINSIZE=int(TARGET_SIZE*0.8)
|
||||||
|
print("Using 80% of the target size:",MINSIZE)
|
||||||
|
else:MINSIZE=int(MINSIZE)*1024
|
||||||
|
|
||||||
d=Path(argv[1]).resolve()
|
d=Path(argv[1]).resolve()
|
||||||
|
if d.is_file():
|
||||||
|
main(d,d.with_stem(d.stem+"_compress"),TARGET_SIZE,MINSIZE,True)
|
||||||
|
exit()
|
||||||
files=d.glob("*")
|
files=d.glob("*")
|
||||||
compressdir=(d/"compress")
|
compressdir=(d/"compress")
|
||||||
compressdir.mkdir(exist_ok=True)
|
compressdir.mkdir(exist_ok=True)
|
||||||
|
|
||||||
TARGET_SIZE=int(input("Target size(k): "))*1024
|
|
||||||
MINSIZE=int(input("The minimum size allowed(k): "))*1024
|
|
||||||
|
|
||||||
# print("Target size:",TARGET_SIZE//1024,"k")
|
|
||||||
# print("The minimum size allowed:",MINSIZE//1024,"k")
|
|
||||||
def callback(x):
|
def callback(x):
|
||||||
if x is None:
|
if x is None:
|
||||||
print("Some file exists, please check.")
|
print("Some file exists, please check.")
|
||||||
@ -76,12 +112,12 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
if SINGLE:
|
if SINGLE:
|
||||||
for file in files:
|
for file in files:
|
||||||
if file.suffix in [".jpg",".png"]:
|
if file.suffix in [".jpg",".png",".webp",".jpeg",".gif",".tif",".tiff",".bmp"]:
|
||||||
main(file,TARGET_SIZE,MINSIZE,compressdir)
|
main(file,compressdir/file.name,TARGET_SIZE,MINSIZE,True)
|
||||||
else:
|
else:
|
||||||
with Pool(16) as p:
|
with Pool(16) as p:
|
||||||
for file in files:
|
for file in files:
|
||||||
if file.suffix in [".jpg",".png"]:
|
if file.suffix in [".jpg",".png",".webp",".jpeg",".gif",".tif",".tiff",".bmp"]:
|
||||||
p.apply_async(main,(file,TARGET_SIZE,MINSIZE,compressdir),callback=callback)
|
p.apply_async(main,(file,compressdir/file.name,TARGET_SIZE,MINSIZE,False),callback=callback)
|
||||||
p.close()
|
p.close()
|
||||||
p.join()
|
p.join()
|
||||||
|
Reference in New Issue
Block a user