Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
879dd2f
Add: wrapper code for animated WebP files
thomas694 Oct 23, 2022
a7d85d4
Add: optional build script
thomas694 Oct 23, 2022
4dbf72b
remove release binaries from source control
russaa May 5, 2023
93f6d4b
REFACTOR removed duplicate libraries
russaa May 5, 2023
9db9136
extended AnimDecode() to allow extracting sub-range of frames
russaa May 5, 2023
5f7ad2d
load animated webp images by extracting first frame
russaa May 5, 2023
da9212d
added build-configuration for x86
russaa May 6, 2023
1794507
prepare wrapper for libwebp 1.3.x
russaa May 6, 2023
e345654
moved wrapper to separate project & updated libwebp to version 1.3.0
russaa May 6, 2023
2cc8911
updated description & build instructions & added modification note
russaa May 6, 2023
d98dd3d
renamed sub-project WebP-Wrapper -> WebPWrapperLib
russaa May 6, 2023
343e691
updated build script
russaa May 6, 2023
77f44fb
renamed configuration "Debug_x86" -> "Debug x86"
russaa May 6, 2023
f1e851c
REFACTOR removed disabled old code for ARCH-selection
russaa May 6, 2023
563df0d
only pre-load libraries if the corresponding file exists in sub-direc…
russaa May 6, 2023
3bbd473
FIX path for copy instructions
russaa May 6, 2023
a189b42
BUGFIX compatibility with NET(core) >= 3: detect correct entry-point …
russaa May 20, 2023
096a439
BUGFIX compatibility with NET(core) >= 3: detect correct entry-point …
russaa May 20, 2023
cb5e182
FIX free allocated memory when testing entry-point CopyMemory in kern…
russaa May 20, 2023
0ceb2bb
Add: functionality for getting animated WebP's frame data
thomas694 Apr 7, 2024
4f80483
Refactor: simplify attribute names
thomas694 Apr 7, 2024
0e105a4
Fix: Change path determination for LoadLibrary so that ASP.NET works too
thomas694 Apr 8, 2024
c224750
Update README.md
thomas694 Apr 8, 2024
110ad4e
Update README.md
thomas694 Apr 9, 2024
182e28b
Merge branch 'fork/master' into 'upstream/master'
thomas694 Jul 31, 2025
046457d
Update README.md
thomas694 Jul 31, 2025
51fc043
Build action
github-actions[bot] Aug 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions .github/workflows/build+release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: Build

on:
workflow_dispatch:
inputs:
create-binaries:
type: boolean
description: create libwebp and binaries?
libwebp-version:
description: libwebp tag to use
default: v1.3.0
create-release:
type: boolean
description: create release?
version:
required: true
description: Version number (use existing tag, e.g. 1.5)

env:
AppName: WebP-wrapper

jobs:

build:

runs-on: windows-latest

env:
SolutionPath: WebPTest.sln
ProjectPath: WebPTest
LibraryProjectPath: WebPWrapperLib
OutputPath: WebPTest/bin/Release
VersionNumber: ${{ github.event.inputs.version }}

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.1

- name: Clone libwebp
if: github.event.inputs.create-binaries == 'true'
env:
branch_tag: ${{ github.event.inputs.libwebp-version }}
run: |
git clone --depth 1 --branch ${{ env.branch_tag }} https://chromium.googlesource.com/webm/libwebp

- uses: ilammy/msvc-dev-cmd@v1
if: github.event.inputs.create-binaries == 'true'
with:
arch: x86
- name: Build libwebp x86
if: github.event.inputs.create-binaries == 'true'
run: |
cd libwebp
nmake /f Makefile.vc CFG=release-dynamic RTLIBCFG=static OBJDIR=output

- uses: ilammy/msvc-dev-cmd@v1
if: github.event.inputs.create-binaries == 'true'
with:
arch: x64
- name: Build libwebp x64
if: github.event.inputs.create-binaries == 'true'
run: |
cd libwebp
nmake /f Makefile.vc CFG=release-dynamic RTLIBCFG=static OBJDIR=output

- name: Copy Dlls
if: github.event.inputs.create-binaries == 'true'
run: |
Copy-Item "libwebp\output\release-dynamic\x86\bin\*.dll" "${{ env.LibraryProjectPath }}\x86"
Copy-Item "libwebp\output\release-dynamic\x64\bin\*.dll" "${{ env.LibraryProjectPath }}\x64"

- name: Build
run: msbuild ${{ env.SolutionPath }} /p:Configuration=Release /p:Platform="Any CPU"

- name: GIT commit and push changed files
if: github.event.inputs.create-binaries == 'true'
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git commit -a -m "Build action"
git push

- name: Add files
if: github.event.inputs.create-release == 'true'
run: |
Copy-Item "build_libwebp_dll.md" "${{ env.OutputPath }}"
Copy-Item "LICENSE" "${{ env.OutputPath }}"
Copy-Item "${{ env.LibraryProjectPath }}\WebPWrapper.cs" "${{ env.OutputPath }}"

- name: Create Draft Release
id: create_release
if: github.event.inputs.create-release == 'true'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VersionNumber }}
release_name: ${{ env.AppName }}-${{ env.VersionNumber }}
draft: true
prerelease: false

- name: Zip files
if: github.event.inputs.create-release == 'true'
uses: thedoctor0/zip-release@master
with:
type: 'zip'
filename: '${{ env.AppName }}-${{ env.VersionNumber }}.zip'
directory: ${{ env.OutputPath }}

- name: Upload release assets
if: github.event.inputs.create-release == 'true'
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: .\${{ env.OutputPath }}\${{ env.AppName }}-${{ env.VersionNumber }}.zip
asset_name: ${{ env.AppName }}-${{ env.VersionNumber }}.zip
asset_content_type: application/zip
Loading