在以下代碼中,以db存儲一個jpg,我需要知道如何首先將jpg更改爲40%的質量,然後保存?我試圖與imagejpg
,但它可以節省空文件:如何更改jpg質量導出?
function exportGraphics($table_name)
{
$odbc_query = "SELECT * FROM " . $table_name;
mkdir("TI/" . $table_name);
$data = odbc_exec($this->odbc_id, $odbc_query);
odbc_longreadlen($data, 10485760); // 10MB = 10485760
while (odbc_fetch_row($data)) {
$row = odbc_fetch_array($data);
if ($row['GRD_ID'] != "") {
$file_name_jpg = "TI/" . $table_name . "/" . $row['GRD_ID'] . ".jpg";
$file = fopen($file_name_jpg, "w");
fputs($file, $row['GRD_GRAPHIC']);
fclose($file);
set_time_limit(3600);
unset($row);
}
}
print "Ýêñïîðò êàðòèíîê èç òàáëèöû " . $table_name . " çàâåðøåí!";
}
警告:imagecreatefromstring()[function.imagecreatefromstring]:GD 警告:一個參數到存儲器分配乘法是 負或零,不能操作在正常 X:\ denwer \ WWW \ denwer \ tecdoc3.php上線103
警告:imagecreatefromstring()[function.imagecreatefromstring]: 傳遞數據不是 'WBMP' 格式中 X:\ denwer \ www \ denwer \ tecdoc3.php上線103
警告:imagecreatefromstring()[function.imagecreatefromstring]:\ denwer \ WWW \ denwer \ tecdoc3.php上線103
警告: 無法在 X創建GD圖像流出數據的:imagecreatefromstring()[function.imagecreatefromstring]:GD 警告:一個參數到存儲器分配乘法是 負或零,不能正常在 X操作:行\ denwer \ WWW \ denwer \ tecdoc3.php 103
原始碼:
function exportGraphics($table_name) {
$odbc_query = "SELECT * FROM " . $table_name;
mkdir("TI/" . $table_name);
$data = odbc_exec($this->odbc_id, $odbc_query);
odbc_longreadlen($data, 10485760); //10MB = 10485760
while(odbc_fetch_row($data))
{
$row = odbc_fetch_array($data);
if($row['GRD_ID'] != "") {
$file_name_jp2 = "TI/" . $table_name . "/" . $row['GRD_ID'] . ".jp2";
$file = fopen ($file_name_jp2, "w");
fputs($file, $row['GRD_GRAPHIC']);
fclose($file);
set_time_limit(0);
unset($row);
}
}
print "Ýêñïîðò êàðòèíîê èç òàáëèöû " . $table_name . " çàâåðøåí!";
}
什麼意思的警告(加質疑) – byCoder 2012-07-27 09:30:21
我認爲這行'$ im = imagecreatefromstring($ row ['GRD_GRAPHIC']);'失敗,因爲PHP不認爲'$ row ['GRD_GRAPHIC']'是有效的圖像數據。這種數據是以任何方式進行編碼的(例如base64),它應該是什麼圖像格式,JPG? – drew010 2012-07-27 14:14:20
jp2必須,我添加了原始腳本 – byCoder 2012-07-27 20:03:17