質問するログイン新規登録

回答編集履歴

2

ついき

2019/07/17 02:36

投稿

yambejp
yambejp

スコア118094

answer CHANGED
@@ -6,4 +6,47 @@
6
6
 
7
7
  3段階くらいでトライアンドエラー処理するくらいならなんとかなりますが
8
8
  低クオリティにしたときにクライアントがそれをよいとジャッジするかわからないので
9
- 圧縮率はクライアントが決めるべき
9
+ 圧縮率はクライアントが決めるべき
10
+
11
+ # 追記
12
+ imgjpegで出力したサイズを知りたいならバッファリングしてstrlenをすればよいです
13
+ ```PHP
14
+ <?PHP
15
+ $im = @imagecreatefromjpeg('1.jpg');
16
+
17
+ ob_start();
18
+ imagejpeg($im,null,100);
19
+ $content=ob_get_contents();
20
+ ob_end_clean();
21
+ print "100:".strlen($content)."<br>";
22
+
23
+ ob_start();
24
+ imagejpeg($im,null,75);
25
+ $content=ob_get_contents();
26
+ ob_end_clean();
27
+ print "75:".strlen($content)."<br>";
28
+
29
+ ob_start();
30
+ imagejpeg($im,null,50);
31
+ $content=ob_get_contents();
32
+ ob_end_clean();
33
+ print "50:".strlen($content)."<br>";
34
+
35
+ ob_start();
36
+ imagejpeg($im,null,25);
37
+ $content=ob_get_contents();
38
+ ob_end_clean();
39
+ print "25:".strlen($content)."<br>";
40
+
41
+ ob_start();
42
+ imagejpeg($im,null,0);
43
+ $content=ob_get_contents();
44
+ ob_end_clean();
45
+ print "0:".strlen($content)."<br>";
46
+
47
+
48
+ /*
49
+ header('Content-Type: image/jpeg');
50
+ print $content;
51
+ */
52
+ ```

1

調整

2019/07/17 02:36

投稿

yambejp
yambejp

スコア118094

answer CHANGED
@@ -2,7 +2,7 @@
2
2
  下げたあと500kb以下になるとは限りませんので
3
3
  UIとしてユーザーに%指定させて圧縮し、それでもだめならエラーを返すというくらいが妥当。
4
4
  自動でなんどもサーバー側で圧縮比率を変えながら処理するのは
5
- 負荷が高い割に効率的ではないのでやめたほうがいい
5
+ 負荷が高効率的ではないのでやめたほうがいい
6
6
 
7
7
  3段階くらいでトライアンドエラー処理するくらいならなんとかなりますが
8
8
  低クオリティにしたときにクライアントがそれをよいとジャッジするかわからないので