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
22d5103c
authored
2020-09-01 13:07:31 +0900
by
TaishiTokudome
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
イントロ画像登録時の画像リサイズ処理
1 parent
d7c66042
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
63 additions
and
2 deletions
components/com_jce/editor/libraries/classes/browser.php
components/com_jce/editor/libraries/classes/browser.php
View file @
22d5103
...
...
@@ -1173,13 +1173,24 @@ 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
);
...
...
@@ -1238,6 +1249,56 @@ class WFFileBrowser extends JObject
throw
new
InvalidArgumentException
(
JText
::
_
(
'WF_MANAGER_FILE_LIMIT_ERROR'
));
}
}
/**
* 画像リサイズ処理
*/
$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
);
// 画像情報から画像のサイズを取得
$width
=
(
int
)
$image_info
[
0
];
$height
=
(
int
)
$image_info
[
1
];
// 画像タイプを取得
$image_type
=
$image_info
[
'mime'
];
// アスペクト比(縦横比を取得)
$aspect_ratio
=
$height
/
$width
;
// リサイズ後の幅を定義
$new_width
=
1000
;
// リサイズ後の高さを定義(アスペクト比を維持して定義)
$new_height
=
1000
*
$aspect_ratio
;
// 画像タイプがPNGか、JPEGであることを確認
if
(
$image_type
===
'image/png'
||
$image_type
===
'image/jpeg'
)
{
// 画像タイプがPNGの場合の処理
if
(
$image_type
===
'image/png'
)
{
// 元の画像から新しい画像を作る準備
$baseImage
=
imagecreatefrompng
(
$image_url
);
// 画像タイプがJPEGの場合の処理
}
elseif
(
$image_type
===
'image/jpeg'
)
{
// 元の画像から新しい画像を作る準備
$baseImage
=
imagecreatefromjpeg
(
$image_url
);
}
// サイズを指定して新しい画像のキャンバスを作成
$image
=
imagecreatetruecolor
(
$new_width
,
$new_height
);
// 画像のコピーと伸縮
imagecopyresampled
(
$image
,
$baseImage
,
0
,
0
,
0
,
0
,
$new_width
,
$new_height
,
$width
,
$height
);
// コピーした画像を出力
imagejpeg
(
$image
,
$tmp_file
);
}
}
// 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