用PHP写的图片标注的小工具
2016-10-29 22:24
134 查看
用PHP写的图片标注的小工具
最近需要做对图片进行进行标注审核的工作,为了方便展示图片并记录图片的标注结果,决定基于PHP和Mysql做一个简单的图片标注的页面。在工作开始之前,需要先在自己的机器上搭建一个Apache+PHP+Mysql的开发环境,在网上有许多安装教程可以参考。
不过,如果想更加简便快捷的使用PHP/Mysql,在Windows下可以安装wamp5,MAC下可以安装Mamp,这两个软件已经集成了Apache+PHP+Mysql,安装很方便。
下面是整理的代码,主要功能如下:
从数据库读取图片信息
在一个页面显示多张图片
每次提交只影响一张图片的标注结果
显示每张图片的标注状态
可以随时更新图片的标注结果
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php date_default_timezone_set('PRC'); // connect mysql db $mysql_server_name="localhost"; //数据库服务器名称 $mysql_username="root"; // 连接数据库用户名 $mysql_password="root"; // 连接数据库密码 $mysql_dbname = "mydbname"; $conn = new mysqli($mysql_server_name, $mysql_username, $mysql_password, $mysql_dbname); // check connect if ($conn->connect_error) { die("Fail to connect db: " . $conn->connect_error); } $insert_time = '2016-01-10 10:01:01'; // get max and min id $query = "SELECT MAX(ID) AS max_id, MIN(ID) AS min_id FROM pic_table WHERE InsertTime = '{$insert_time}'"; $result = $conn->query($query); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $max_id = $row["max_id"]; $min_id = $row["min_id"]; echo "<br> max_id : ". $max_id. " - min_id : ".$min_id; echo '<br>'; } } else { die("Get no result from db"); } // get total image num $get_toatal_img_num_sql = "SELECT COUNT(*) AS total_num FROM pic_table WHERE ShopID > 0 AND InsertTime = '{$insert_time}'"; $total_num_result = $conn->query($get_toatal_img_num_sql); if ($total_num_result->num_rows > 0) { while($row = $total_num_result->fetch_assoc()) { $max_pic_num = $row["total_num"]; } } else { die("No picture !"); } // dispay pictures // max display num on each page $max_display_num = 10; // get current page num $page = $_GET['page']; echo "page : ".$page, '<br>'; // show pic in table echo '<form action="" method="post"> <table border="2">'; // table head echo '<tr> <td>序号</td><td>商户ID</td><td>图片ID</td> <td align="center" >图片URL</td><td align="center">选项</td><td>审核状态</td> </tr>'; // for each page for ($i = $page * $max_display_num; $i < (($page + 1) * $max_display_num) && $i < $max_pic_num; ++$i) { $j = $i + 1; // sub query sql $cur_id = $min_id + $i; $sub_query_sql = "SELECT ShopID, PictureID, PictureURL, Quality FROM pic_table WHERE InsertTime = '{$insert_time}' AND ID = {$cur_id}"; echo $sub_query_sql, '<br>'; $result = $conn->query($sub_query_sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $shop_id = $row["ShopID"]; $pic_id = $row["PictureID"]; $pic_url = $row["PictureURL"]; $quality = $row["Quality"]; echo "<br> id: ".$shop_id." pic : ".$pic_id. " url ".$pic_url. " qua ".$quality; } } else { echo "Get no result from db !"; continue; } if ($quality != -10) { $audit_status = "已审核"; } else { $audit_status = "未审核"; } echo '<tr> <td>'.$j.'</td> <td>'.$shop_id.'</td> <td>'.$pic_id.'</td> <td> <img border= 0 src='.$pic_url.' width="120" height="90" > </td> <td> <input type="radio" name="quality" value="20_'.$shop_id."_".$pic_id.'"> 好 <input type="radio" name="quality" value="10_'.$shop_id."_".$pic_id.'"> 中 <input type="radio" name="quality" value="5_'.$shop_id."_".$pic_id.'"> 差<br> <br> <input type="submit"> </td> <td>'.$audit_status.'</td> </tr>'; } echo '<tr><td<input type="submit"><br><br></form>'; echo '</table>'; // write db // get post info $pic_quality = $_POST['quality']; $pic_audit_info_arry = explode("_",$pic_quality); $num = count($pic_audit_info_arry); $cur_pic_quality = $pic_audit_info_arry[0]; $cur_shop_id = $pic_audit_info_arry[1]; $cur_pic_id = $pic_audit_info_arry[2]; $update_sql = "UPDATE pic_table SET Quality = {$cur_pic_quality} WHERE InsertTime = '{$insert_time}' AND ShopID = {$cur_shop_id} AND PictureID = {$cur_pic_id}"; $conn->query($update_sql); $conn->close(); echo '<br><br>'; $Previous_page=$page-1; $next_page=$page+1; if ($Previous_page<0){ echo "上页"; echo "<a href=?page=$next_page> 下页 </a>"; } else if ($page<=$max_pic_num/$max_display_num) { echo "<a href=?page=$Previous_page> 上页 </a>"; echo "<a href=?page=$next_page> 下页 </a>";} else{ echo "图片已审核完毕!"; echo '<br><br>'; echo " <a href=?page=$Previous_page>上页</a>"; echo "下页"; } echo '<br><br><br>'; echo " ", Date("Y-m-d H:i:s"); ?> </body> </html>
这个小工具功能比较简单,不能一次写入多张图片的标注内容。
相关文章推荐
- 用java的swing写了个图片标注工具
- php中使用工具Netpbm转换图片
- 学习:图片标注工具LabelImg使用教程
- 目标检测任务中图片标注工具LabelImg等
- 图片标注工具LabelImg使用教程
- php图片自动裁剪工具,解决图片变形问题,缩略图问题
- python学习笔记(二)图片标注工具LabelImg
- 图片标注工具 LabelImg 使用教程
- 前端开发——图片标注工具
- 图片标注工具LabelImg使用教程
- 优秀图片标注工具 推荐
- 图片标注工具LabelImg使用教程
- 图片标注工具LabelImg使用教程
- 前端开发——图片标注工具
- 好用的图片标注工具
- 记录比较好用的windows电脑工具,截图软件和标注PSD图片的软件
- 图片标注工具_LabelImage
- 目标检测任务中图片标注工具LabelImg等
- Mac 10.12安装图片标注工具PxCook
- [置顶] adaptive-images的使用方法 php 服务器端 图片处理相关工具