概要
ABOUT
JPEG・PNG画像を、WebP画像に変換できるツールです。
WebP画像はGoogleが開発した画像形式です。JPEG画像よりもファイルサイズが減らせ、PNGのように透明色に対応しています。
主要なウェブブラウザすべてが(Chrome、Firefox、Safari、Edge)対応しています。
すべての処理はデバイス内で完結しています。データを一切サーバーに送信していません。
WebP画像はGoogleが開発した画像形式です。JPEG画像よりもファイルサイズが減らせ、PNGのように透明色に対応しています。
主要なウェブブラウザすべてが(Chrome、Firefox、Safari、Edge)対応しています。
すべての処理はデバイス内で完結しています。データを一切サーバーに送信していません。
カスタマイズ
CUSTOMIZE
入力画像
INPUT
オリジナル画像
ORIGINAL
WebP画像
WEBP
技術概要
IMPLEMENTATION
公式ライブラリ libwebp を Emscripten で WebAssembly にビルドしました。
完全にオフラインのみで動作しており、外部サーバーを一切使用しておりません。
完全にオフラインのみで動作しており、外部サーバーを一切使用しておりません。
技術詳細
Makefile
CC = emcc
CFLAGS = -I libwebp -O3 --bind -msimd128 -s EXPORTED_RUNTIME_METHODS=HEAP8,HEAPU8 -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s ENVIRONMENT=web,worker -s EXPORT_ES6=0 -s DYNAMIC_EXECUTION=0 -s MODULARIZE=0
TARGET_JS = webp160.js
TARGET_WASM = webp160.wasm
SRCS = $(wildcard libwebp/src/dec/*.c)
SRCS += $(wildcard libwebp/src/dsp/*.c)
SRCS += $(wildcard libwebp/src/demux/*.c)
SRCS += $(wildcard libwebp/src/enc/*.c)
SRCS += $(wildcard libwebp/src/mux/*.c)
SRCS += $(wildcard libwebp/src/utils/*.c)
SRCS += $(wildcard libwebp/sharpyuv/*.c)
SRCS += $(wildcard src/*.c)
all: $(TARGET_JS)
$(TARGET_JS): $(SRCS)
$(CC) $(SRCS) $(CFLAGS) -o $(TARGET_JS)
clean:
@if exist $(TARGET_JS) del $(TARGET_JS)
@if exist $(TARGET_WASM) del $(TARGET_WASM)
webp.c
#include "emscripten.h"
#include "src/webp/encode.h"
#include <stdlib.h>
EMSCRIPTEN_KEEPALIVE
int version()
{
return WebPGetEncoderVersion();
}
EMSCRIPTEN_KEEPALIVE
void *create_buffer(int width, int height)
{
return malloc(width * height * 4 * sizeof(uint8_t));
}
EMSCRIPTEN_KEEPALIVE
void destroy_buffer(uint8_t *p)
{
free(p);
}
int result[2];
EMSCRIPTEN_KEEPALIVE
void encode(uint8_t *img_in, int width, int height, float quality)
{
uint8_t *img_out;
size_t size;
size = WebPEncodeRGBA(img_in, width, height, width * 4, quality, &img_out);
result[0] = (int)img_out;
result[1] = size;
}
EMSCRIPTEN_KEEPALIVE
void free_result(uint8_t *result)
{
WebPFree(result);
}
EMSCRIPTEN_KEEPALIVE
int get_result_pointer()
{
return result[0];
}
EMSCRIPTEN_KEEPALIVE
int get_result_size()
{
return result[1];
}
更新履歴
HISTORY
2026年5月26日:エンコードに使用する libweb を v1.6.0 に更新しました。
ご利用について
TERMS OF USE
本ツールのご利用は完全に無料です。開発者はいかなる形でも対価を求めません。
本ツールで作成した画像は商用利用を含めてご自由に利用できます。
本ツールを利用した事によるいかなる損害についても開発者は一切の責任を負いません。
本ツールで作成した画像は商用利用を含めてご自由に利用できます。
本ツールを利用した事によるいかなる損害についても開発者は一切の責任を負いません。
権利表記
LICENCE
Powered by libwebp https://chromium.googlesource.com/webm/libwebp
Powered by Emscripten https://emscripten.org/
Powered by Emscripten https://emscripten.org/
@タイトル
@テキスト





