Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Yokihito Oki
/
kanoya-univercity-prod
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
b36c9d9d
authored
2020-09-02 13:28:44 +0900
by
TaishiTokudome
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
画像リサイズ処理の修正
1 parent
caeb56f3
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
35 deletions
components/com_jce/editor/libraries/classes/browser.php
components/com_jce/editor/libraries/classes/browser.php
View file @
b36c9d9
...
...
@@ -1173,24 +1173,13 @@ class WFFileBrowser extends JObject
// get uploaded file
$file
=
$app
->
input
->
files
->
get
(
'file'
,
array
(),
'raw'
);
$file
[
'size'
]
=
40
;
// error_log("====================================================================================================================\n", 3, '/var/www/html/debug.log');
// error_log("outputed from " . __FILE__ . "\n", 3, '/var/www/html/debug.log');
// error_log('file = ', 3, '/var/www/html/debug.log');
// error_log(print_r($file, true) . "\n", 3, '/var/www/html/debug.log');
// error_log("====================================================================================================================\n", 3, '/var/www/html/debug.log');
// error_log("ここまで\n\n", 3, '/var/www/html/debug.log');
// validate file
$this
->
validateUploadedFile
(
$file
);
// get file name
$name
=
(
string
)
$app
->
input
->
get
(
'name'
,
$file
[
'name'
],
'STRING'
);
// error_log("====================================================================================================================\n", 3, '/var/www/html/debug.log');
// error_log("outputed from " . __FILE__ . "\n", 3, '/var/www/html/debug.log');
// error_log('name = ', 3, '/var/www/html/debug.log');
// error_log(print_r($name, true) . "\n", 3, '/var/www/html/debug.log');
// error_log("====================================================================================================================\n", 3, '/var/www/html/debug.log');
// error_log("ここまで\n\n", 3, '/var/www/html/debug.log');
// decode
$name
=
rawurldecode
(
$name
);
...
...
@@ -1255,50 +1244,68 @@ class WFFileBrowser extends JObject
$fieldid
=
(
string
)
$app
->
input
->
get
(
'fieldid'
,
''
,
'STRING'
);
// ファイルがイントロ画像としてアップロードされていることを確認
if
(
$fieldid
===
'jform_images_image_intro'
)
{
// tmpディレクトリに一時保存されているupload予定のファイルパスを取得
$tmp_file
=
$file
[
'tmp_name'
];
// 画像を取得
$img
=
file_get_contents
(
$tmp_file
);
// 画像のエンコード
$enc_img
=
base64_encode
(
$img
);
// 画像URLを作成
$image_url
=
'data:application/octet-stream;base64,'
.
$enc_img
;
// 画像情報を取得
$image_info
=
getimagesize
(
$
image_url
);
// 画像情報から画像の
サイズ
を取得
$image_info
=
getimagesize
(
$
tmp_file
);
// 画像情報から画像の
幅
を取得
$width
=
(
int
)
$image_info
[
0
];
// リサイズ後の幅を定義
$new_width
=
1000
;
// 登録する画像の幅がリサイズ後の幅(1000px)より大きいことを確認(1000px以上でリサイズ処理)
if
(
$width
>
$new_width
)
{
// 画像情報から画像の高さを取得
$height
=
(
int
)
$image_info
[
1
];
// 画像タイプを取得
$image_type
=
$image_info
[
'mime'
];
// アスペクト比(縦横比を取得)
$aspect_ratio
=
$height
/
$width
;
// リサイズ後の幅を定義
$new_width
=
1000
;
// リサイズ後の高さを定義(アスペクト比を維持して定義)
$new_height
=
1000
*
$aspect_ratio
;
$new_height
=
$new_width
*
$aspect_ratio
;
// 画像タイプがPNGか、JPEGであることを確認
if
(
$image_type
===
'image/png'
||
$image_type
===
'image/jpeg'
)
{
$base_image
=
null
;
switch
(
$image_type
)
{
// 画像タイプがPNGの場合の処理
if
(
$image_type
===
'image/png'
)
{
case
'image/png'
:
// 元の画像から新しい画像を作る準備
$baseImage
=
imagecreatefrompng
(
$image_url
);
$base_image
=
imagecreatefrompng
(
$tmp_file
);
break
;
// 画像タイプがJPEGの場合の処理
}
elseif
(
$image_type
===
'image/jpeg'
)
{
case
'image/jpeg'
:
// 元の画像から新しい画像を作る準備
$baseImage
=
imagecreatefromjpeg
(
$image_url
);
$base_image
=
imagecreatefromjpeg
(
$tmp_file
);
break
;
default
:
break
;
}
// $base_imageがnullから更新されている場合を確認
if
(
$base_image
)
{
// サイズを指定して新しい画像のキャンバスを作成
$
image
=
imagecreatetruecolor
(
$new_width
,
$new_height
);
$new_
image
=
imagecreatetruecolor
(
$new_width
,
$new_height
);
// 画像のコピーと伸縮
imagecopyresampled
(
$image
,
$baseImage
,
0
,
0
,
0
,
0
,
$new_width
,
$new_height
,
$width
,
$height
);
imagecopyresampled
(
$new_image
,
$base_image
,
0
,
0
,
0
,
0
,
$new_width
,
$new_height
,
$width
,
$height
);
switch
(
$image_type
)
{
// 画像タイプがPNGの場合の処理
case
'image/png'
:
// コピーした画像を出力
imagepng
(
$new_image
,
$tmp_file
);
break
;
// 画像タイプがJPEGの場合の処理
case
'image/jpeg'
:
// コピーした画像を出力
imagejpeg
(
$image
,
$tmp_file
);
imagejpeg
(
$new_image
,
$tmp_file
);
break
;
default
:
break
;
}
}
}
}
// Check total file size limit
if
(
!
empty
(
$upload
[
'total_size'
]))
{
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment