Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
keke125 committed May 30, 2023
1 parent ba7efbf commit 69a1f3c
Showing 1 changed file with 37 additions and 42 deletions.
79 changes: 37 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Pixel Art Filter Web

Pixel Art Filter Web 為免費且開放原始碼的跨平臺網頁程式,提供使用者為圖片套上不同風格的像素濾鏡。

## 簡介

本專案使用Spring Boot及Vaadin框架,為 Pixel Art Filter 的 Java 網頁版本。
本專案使用 Spring Boot 及 Vaadin 框架,為 Pixel Art Filter 的 Java 網頁版本。

核心的像素濾鏡轉換程式碼由 JingShing
提供,可參考其GitHub項目[JingShing/Pixel-Art-Filter-Java](https://github.com/JingShing/Pixel-Art-Filter-Java)

提供使用者上傳圖片、設定轉換參數、生成轉換後的圖片功能,使用者也可查看之前生成過的圖片,下載喜歡的圖片,在網頁方便的與原圖進行比較,也可透過觀察不同參數生成的效果,尋找自己喜歡的風格。
提供使用者上傳圖片、透過設定轉換參數為圖片套上不同風格的像素濾鏡,使用者除了可查看、下載原始圖片及經轉換過後的效果圖,也可透過觀察不同參數生成的效果,尋找自己喜歡的風格。

此外我們目前提供中英語言,未來可透過加入新的語言配置檔增加支援的語言,不需對程式碼進行大幅修改,保持擴充性。

Expand All @@ -17,23 +19,27 @@

我們提供自行部署的使用者們可自訂的配置,你可透過配置檔調整程式的系統設定,像是監聽的連接埠,密碼選用哪種方式雜湊,上傳檔案的限制...等等。

## 從原始碼構建並部署
## 建置

本專案為 Maven 專案,使用者將原始碼下載到本機後,指令可參考 `git clone https://github.com/keke125/pixel-art-filter-web.git`
,可透過在命令行輸入 `mvnw clean package -Pproduction` (Windows) 或 `.\mvnw clean package -Pproduction` (Windows
PowerShell) 或 `sudo chmod +x mvnw` (如遇到權限問題,執行本命令mvnw將調整為可執行權限) `./mvnw clean package -Pproduction` (
Mac & Linux)
編譯,此時將在 `target` 資料夾下生成 JAR 檔案,除了 JAR 檔案,你還需要將配置檔(application.properties)一起放入程式根目錄,接著請參考
直接部署 章節。
,可透過在命令行輸入 `mvnw clean package -Pproduction` (Windows) 或 `.\mvnw clean package -Pproduction` (Windows PowerShell) 或 `./mvnw clean package -Pproduction` (Mac & Linux) 編譯,此時將在 `target` 資料夾下生成 JAR 檔案,除了 JAR 檔案,你還需要將配置檔(application.properties)一起放入程式根目錄,可參考 [檔案結構](https://github.com/keke125/pixel-art-filter-web#%E6%AA%94%E6%A1%88%E7%B5%90%E6%A7%8B)

如果想將檔案導入IDE,你也可以參考 [how to import Vaadin projects to different IDEs](https://vaadin.com/docs/latest/guide/step-by-step/importing) (
如果想將專案導入IDE,你也可以參考 [how to import Vaadin projects to different IDEs](https://vaadin.com/docs/latest/guide/step-by-step/importing) (
Eclipse, IntelliJ IDEA, NetBeans, and VS Code)。

## 直接部署
## 檔案結構

```bash=
.
└── pafw
├── application.properties
├── pixel-art-filter-web-1.x.x.jar
└── opencv_java460.dll / libopencv_java460.so (Optional)
```

根據系統及處理器架構的不同選擇選擇壓縮檔下載,將壓縮檔解壓縮後進入該資料夾,由於圖片儲存為絕對路徑,請再次確認程式放置的路徑
## 部署

依照下面教學設定資料庫,並調整配置檔 (application.properties)。
根據系統及處理器架構的不同選擇選擇對應的壓縮檔下載,將壓縮檔解壓縮後進入該資料夾,由於圖片儲存為絕對路徑,請再次確認程式放置的路徑,並參考[資料庫](https://github.com/keke125/pixel-art-filter-web#%E8%B3%87%E6%96%99%E5%BA%AB) 設定資料庫,最後參考[配置檔](https://github.com/keke125/pixel-art-filter-web#%E9%85%8D%E7%BD%AE%E6%AA%94) 調整配置檔 (application.properties)。

執行

Expand All @@ -45,9 +51,13 @@ java -jar /path/to/.jar

初始的管理員帳號密碼為 admin/admin ,請登入後至使用者檔案更改密碼。

另外請注意使用者的圖片計算將只計算使用者上傳的圖片,生成後的圖片大小並不會被計入,請在設定每位使用者的上限時特別留意,根據實測,通常生成後的圖片大小與原圖相比都不會太大。
另外請注意使用者的圖片計算將只計算使用者上傳的圖片,經轉換後的圖片大小並不會被計入,請在設定每位使用者的上限時特別留意,根據實測,通常轉換後的圖片大小與原圖相比都不會太大。

## Docker 部署

參考 [Docker Hub](https://hub.docker.com/r/keke125/pixel-art-filter-web)

## 資料庫
### 資料庫

本專案使用 MariaDB,你可以改成你喜歡的資料庫,請參考 Spring Data JPA 相關設定。

Expand All @@ -61,11 +71,11 @@ GRANT ALL PRIVILEGES ON newdatabase.* TO 'newdatabaseuser'@'localhost';
FLUSH PRIVILEGES;
```

新增資料庫後,請設定環境變數,或是直接更改配置檔(請參考後續教學),環境變數設定如下
新增資料庫後,請設定環境變數,或是直接更改配置檔(請參考[配置檔](https://github.com/keke125/pixel-art-filter-web#%E9%85%8D%E7%BD%AE%E6%AA%94)),環境變數設定如下:

- PAFW_DB_URL

資料庫路徑,例如 `jdbc:mariadb://localhost:3306/pafw` 其中 pafw 為資料庫名稱
資料庫路徑,例如 `jdbc:mariadb://localhost:3306/pafw` 其中 `pafw` 為資料庫名稱

- PAFW_DB_USER

Expand All @@ -75,14 +85,13 @@ FLUSH PRIVILEGES;

資料庫使用者密碼,例如 `password`

## OpenCV (可選)
### OpenCV (可選)

本專案使用的 OpenCV 版本為 4.6.0,使用 [openpnp/opencv](https://github.com/openpnp/opencv) 打包後的程式庫,你也可以改為使用 OpenCV 官方提供的程式庫。

在Linux的環境下你需要編譯OpenCV,編譯後取得兩個檔案,一個是 opencv-460.jar , 另一個是 libopencv_java460.so
,其中460表示opencv的版本。如果你需要編譯 OpenCV 的指令,你可以參考 opencv/docker-linux-install.sh (適用於Debian及Ubuntu)。
在Linux的環境下你需要編譯 OpenCV ,編譯後取得兩個檔案,一個是 `opencv-460.jar` , 另一個是 `libopencv_java460.so`,其中460表示 OpenCV 的版本。如果你需要編譯 OpenCV 的指令,你可以參考 `opencv/docker-linux-install.sh` (適用於Debian及Ubuntu)。

在Windows的環境下可直接下載官方的檔案,包含 opencv-460.jar 及 opencv_java460.dll。
在Windows的環境下可直接下載官方的檔案,包含 `opencv-460.jar``opencv_java460.dll`

取得兩個檔案後,輸入以下指令將 OpenCV 安裝到 Maven 專案

Expand Down Expand Up @@ -114,11 +123,11 @@ mvn install:install-file -Dfile=/path/to/opencv/jarfile -DgroupId=org -Dartifact
除此之外,你還需要設定載入程式庫 (native libraries) 的路徑,也就是存放 .dll (Windows) 或 .so (Linux) 的資料夾。

### 開發環境 (使用IDE)
- 開發環境 (使用IDE)

請在 IDE 外部函式庫 (External Libraries) 設定 OpenCV。

### 生產環境 (打包成jar執行)
- 生產環境 (打包成jar執行)

在 Windows 下需要 .dll 檔,請指定 .dll 的路徑。

Expand All @@ -132,33 +141,23 @@ java -Djava.library.path=\path\to\.dll -jar \path\to\.jar
java -Djava.library.path=/path/to/.so -jar /path/to/.jar
```

請注意,\path\to\.dll 及 /path/to/.so 需要填的是儲存 .dll 的資料夾,\path\to\.jar則需填包含jar檔名的完整路徑
請注意,`\path\to\.dll``/path/to/.so` 需要填的是儲存 .dll 或 .so 的資料夾,`\path\to\.jar` 則需填包含jar檔名的完整路徑

你還需要調整 `src/main/java/com/keke125/pixel/data/service/ImageService.java`
程式碼,將 `nu.pattern.OpenCV.loadLocally();` 替換成 `System.loadLibrary(Core.NATIVE_LIBRARY_NAME);`
並匯入 OpenCV `import org.opencv.core.Core;`

## 檔案結構
### 配置檔

```bash=
.
└── pafw
├── application.properties
├── pixel-art-filter-web-1.x.x.jar
└── opencv_java460.dll / libopencv_java460.so (Optional)
```
- spring.datasource.url

## 設定配置檔

- PAFW_DB_URL
資料庫路徑,例如 `jdbc:mariadb://localhost:3306/pafw` 其中 pafw 為資料庫名稱。

資料庫路徑,例如 `jdbc:mariadb://db:3306/pafw` 其中 pafw 為資料庫名稱。

- PAFW_DB_USER
- spring.datasource.username

資料庫使用者,例如 `pafw`

- PAFW_DB_PASSWORD
- spring.datasource.password

資料庫使用者密碼,例如 `changeme`

Expand Down Expand Up @@ -229,7 +228,3 @@ java -Djava.library.path=/path/to/.so -jar /path/to/.jar
- app.loginInfoEN

英文登入訊息,於登入頁面底部顯示。

## Docker 部署

參考 [Docker Hub](https://hub.docker.com/r/keke125/pixel-art-filter-web)

0 comments on commit 69a1f3c

Please sign in to comment.