Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
aon-app-server
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
aon-app-server
Commits
d8c648e8
Commit
d8c648e8
authored
Aug 23, 2024
by
brent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modifi webp
parent
638a52eb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
5 deletions
+40
-5
app.conf
conf/app.conf
+1
-1
task.go
controllers/task.go
+38
-3
lastupdate.tmp
lastupdate.tmp
+1
-1
No files found.
conf/app.conf
View file @
d8c648e8
...
@@ -12,7 +12,7 @@ apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
...
@@ -12,7 +12,7 @@ apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
taskUrl
=
"https://api.aonet.ai/api/v1"
taskUrl
=
"https://api.aonet.ai/api/v1"
imageUrl
=
"https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageUrl
=
"https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageTransferUrl
=
"https://tmp-file.aigic.ai/api/v1/down/put"
imageTransferUrl
=
"https://tmp-file.aigic.ai/api/v1/down/put"
replicateToken
=
"r8_
9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6
"
replicateToken
=
"r8_
U2xkKXvCaMSSGPFFxOFZVHyxuBjzQSO498J65
"
replicateTimeout
=
10
replicateTimeout
=
10
bucketName
=
"aon-watermark"
bucketName
=
"aon-watermark"
region
=
"us-west-2"
region
=
"us-west-2"
...
...
controllers/task.go
View file @
d8c648e8
...
@@ -21,6 +21,7 @@ import (
...
@@ -21,6 +21,7 @@ import (
storage_go
"github.com/supabase-community/storage-go"
storage_go
"github.com/supabase-community/storage-go"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/bson/primitive"
"golang.org/x/image/webp"
"gopkg.in/yaml.v2"
"gopkg.in/yaml.v2"
"image"
"image"
"image/jpeg"
"image/jpeg"
...
@@ -357,6 +358,16 @@ func transferFileToS3(images []string, task *models.Task, needWatermark bool) []
...
@@ -357,6 +358,16 @@ func transferFileToS3(images []string, task *models.Task, needWatermark bool) []
return
images
return
images
}
}
func
decodeWebP
(
file
*
os
.
File
)
(
image
.
Image
,
error
)
{
img
,
err
:=
webp
.
Decode
(
file
)
if
err
!=
nil
{
return
nil
,
err
}
return
img
,
nil
}
func
downloadImage
(
url
string
)
(
image
.
Image
,
string
,
error
)
{
func
downloadImage
(
url
string
)
(
image
.
Image
,
string
,
error
)
{
resp
,
err
:=
http
.
Get
(
url
)
resp
,
err
:=
http
.
Get
(
url
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -364,11 +375,30 @@ func downloadImage(url string) (image.Image, string, error) {
...
@@ -364,11 +375,30 @@ func downloadImage(url string) (image.Image, string, error) {
}
}
defer
resp
.
Body
.
Close
()
defer
resp
.
Body
.
Close
()
img
,
format
,
err
:=
image
.
Decode
(
resp
.
Body
)
body
,
err
:=
io
.
ReadAll
(
resp
.
Body
)
kind
,
err
:=
filetype
.
Match
(
body
)
if
err
!=
nil
{
if
err
!=
nil
{
logs
.
Debug
(
"filetype.Match error = "
,
err
)
return
nil
,
""
,
err
return
nil
,
""
,
err
}
}
img
,
format
,
err
:=
image
.
Decode
(
resp
.
Body
)
if
err
!=
nil
{
mime
:=
kind
.
MIME
.
Value
if
mime
==
"image/webp"
{
format
=
"webp"
file
,
err
:=
downloadFile
(
url
)
img
,
err
=
decodeWebP
(
file
)
defer
file
.
Close
()
defer
os
.
Remove
(
file
.
Name
())
//img, err = webp.Decode(resp.Body)
if
err
!=
nil
{
return
nil
,
""
,
err
}
}
else
{
return
nil
,
""
,
err
}
}
return
img
,
format
,
nil
return
img
,
format
,
nil
}
}
...
@@ -606,16 +636,21 @@ func addWatermark(sourceURL string, watermarkURL string) (string, error) {
...
@@ -606,16 +636,21 @@ func addWatermark(sourceURL string, watermarkURL string) (string, error) {
// 创建绘图上下文
// 创建绘图上下文
dc
:=
gg
.
NewContextForImage
(
srcImg
)
dc
:=
gg
.
NewContextForImage
(
srcImg
)
width
:=
watermarkImg
.
Bounds
()
.
Dx
()
height
:=
watermarkImg
.
Bounds
()
.
Dy
()
// 添加水印
// 添加水印
if
watermarkImg
!=
nil
{
if
watermarkImg
!=
nil
{
dc
.
DrawImageAnchored
(
watermarkImg
,
dc
.
Width
()
/
2
,
dc
.
Height
()
-
80
,
0.5
,
0.5
)
// 在中心添加水印
dc
.
DrawImageAnchored
(
watermarkImg
,
(
dc
.
Width
()
-
width
)
/
2
,
dc
.
Height
()
-
height
-
80
,
0
,
0
)
// 在中心添加水印
}
}
// 获取合成后的图像
// 获取合成后的图像
outputImg
:=
dc
.
Image
()
outputImg
:=
dc
.
Image
()
// 上传到 S3
// 上传到 S3
s3Url
,
err
:=
uploadToS3
(
bucketName
,
outputKey
,
outputImg
,
ext
)
timestamp
:=
time
.
Now
()
.
Unix
()
timestampStr
:=
strconv
.
FormatInt
(
timestamp
,
10
)
outputKey
=
timestampStr
+
".png"
s3Url
,
err
:=
uploadToS3
(
bucketName
,
outputKey
,
outputImg
,
".png"
)
if
err
!=
nil
{
if
err
!=
nil
{
logs
.
Debug
(
"uploadToS3 faild"
,
err
)
logs
.
Debug
(
"uploadToS3 faild"
,
err
)
file
,
data
,
err
:=
ImageToFile
(
outputKey
,
outputImg
,
ext
)
file
,
data
,
err
:=
ImageToFile
(
outputKey
,
outputImg
,
ext
)
...
...
lastupdate.tmp
View file @
d8c648e8
{"/Users/brent/Documents/wubanWork/aon_app_server/controllers":1723948236667217848}
{"/Users/brent/Documents/wubanWork/aon_app_server/controllers":1724388875286732771}
\ No newline at end of file
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment