image_crop.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. $(document).ready(function(){
  2. $("#loadingDiv").hide();
  3. var $j = jQuery.noConflict();//为了解决jquery1.11.0包和imgbox必须用的1.3包的冲突
  4. var pagenum=0;
  5. var nowpage=0;
  6. var datanum=0;
  7. var json;
  8. var urls;
  9. var searchname;
  10. var organ;
  11. var radius=5;//半径
  12. var offset;
  13. var top;
  14. var left;
  15. var my_crop=0;
  16. var my_crop_1,my_crop_2,my_crop_3,my_crop_4;
  17. if(window.speechSynthesis !=undefined)
  18. {
  19. window.speechSynthesis.pause();
  20. window.speechSynthesis.cancel();
  21. }
  22. if(sessionStorage!=undefined)
  23. {
  24. if(sessionStorage.getItem("username")!=null)
  25. {
  26. $("#needlogin").remove();
  27. var $span= $("<span>用户名:"+sessionStorage.getItem("username")+"</span>");
  28. $("#needloginparent").append($span);
  29. }
  30. else
  31. {
  32. $("#a_datamanage").attr('href','login.html'); //医学数据管理界面
  33. //$("#a_codemanage").attr('href','login.html');代码管理不需要
  34. $("#a_show").attr('href','login.html');//成果展示
  35. }
  36. }
  37. $j(".list_images").imgbox({
  38. 'speedIn' : 0,
  39. 'speedOut' : 0,
  40. 'alignment' : 'center',
  41. 'overlayShow' : true,
  42. 'allowMultiple' : false
  43. });
  44. $('.wrap').click(function(e){
  45. if(my_crop<=1)
  46. {
  47. offset=$(this).offset();
  48. top=e.pageY-offset.top-radius;
  49. left=e.pageX-offset.left-radius;
  50. //$('.wrap').append('<div class="ball" style="top:'+top+';left:'+left+'"></div>');
  51. $('.container').html('<div class="ball" style="top:'+top+"px"+';left:'+left+"px"+'"></div>');
  52. //alert(left+","+top);
  53. if(my_crop==0)
  54. {
  55. my_crop_1=top;
  56. my_crop_2=left;
  57. //alert("y:"+my_crop_1+"x:"+my_crop_2);
  58. if(window.speechSynthesis !=undefined)
  59. {
  60. var msg = new SpeechSynthesisUtterance("切分左上角设置成功!");
  61. window.speechSynthesis.speak(msg);
  62. }
  63. alert("切分左上角设置成功!");
  64. }
  65. else if(my_crop==1)
  66. {
  67. my_crop_3=top;
  68. my_crop_4=left;
  69. //alert("y:"+my_crop_3+"x:"+my_crop_4);
  70. if(window.speechSynthesis !=undefined)
  71. {
  72. var msg = new SpeechSynthesisUtterance("切分右下角设置成功!");
  73. window.speechSynthesis.speak(msg);
  74. }
  75. alert("切分右下角设置成功!");
  76. my_crop=-1;
  77. }
  78. my_crop++;
  79. }
  80. /*else
  81. {
  82. my_crop=0;
  83. offset=$(this).offset();
  84. top=e.pageY-offset.top-radius;
  85. left=e.pageX-offset.left-radius;
  86. //$('.wrap').append('<div class="ball" style="top:'+top+';left:'+left+'"></div>');
  87. $('.container').html('<div class="ball" style="top:'+top+';left:'+left+'"></div>');
  88. //alert(left+","+top);
  89. if(my_crop==0)
  90. {
  91. my_crop_1=left+","+top;
  92. alert("my_crop_1:"+my_crop_1);
  93. }
  94. }*/
  95. });
  96. $("#findByOrgan").click(
  97. function()
  98. {
  99. if(window.speechSynthesis !=undefined)
  100. {
  101. window.speechSynthesis.pause();
  102. window.speechSynthesis.cancel();
  103. }
  104. /*organ=$("#select_organ").find("option:selected").text();
  105. if(organ=="肝脏")
  106. {
  107. organ="liver";
  108. }
  109. else if(organ="肺")
  110. {
  111. organ="lung";
  112. }*/
  113. var naturalWidth = document.getElementById('img').offsetWidth;
  114. var naturalHeight = document.getElementById('img').offsetHeight;
  115. //alert("naturalWidth:"+naturalWidth+"naturalHeight:"+naturalHeight);
  116. var imgurl = $("#file").val();
  117. if(imgurl=="")
  118. {
  119. if(window.speechSynthesis !=undefined)
  120. {
  121. var msg = new SpeechSynthesisUtterance("请选择图片");
  122. window.speechSynthesis.speak(msg);
  123. }
  124. alert("请选择图片");
  125. }
  126. else
  127. {
  128. /*两个方法二选一 和后端交互的时候看
  129. $.ajaxFileUpload({
  130. url:"***",
  131. type:"post"
  132. fileElementId: "file", //文件上传域的ID,这里是input的ID,而不是img的
  133. contentType: "application/x-www-form-urlencoded; charset=utf-8",
  134. data:{"organ":organ}
  135. success: function (data) {
  136. //将分割的结果展示 即替换img的src
  137. //$("#img").attr("src","data:image/jpg;base64,"+data)
  138. }
  139. });*/
  140. if(window.speechSynthesis !=undefined)
  141. {
  142. var msg = new SpeechSynthesisUtterance("正在切分,请稍后");
  143. window.speechSynthesis.speak(msg);
  144. }
  145. var formData = new FormData();
  146. formData.append('test_nii', document.getElementById('file').files[0]);
  147. formData.append('my_crop_1',my_crop_1);
  148. formData.append('my_crop_2',my_crop_2);
  149. formData.append('my_crop_3',my_crop_3);
  150. formData.append('my_crop_4',my_crop_4);
  151. formData.append('naturalWidth',naturalWidth);
  152. formData.append('naturalHeight',naturalHeight);
  153. //formData.append('organ_name',organ);
  154. $("#loadingDiv").show();
  155. $.ajax({
  156. url:"https://holer50861.restclient.cn/project/image_crop/",
  157. type:"post",
  158. data: formData,
  159. dataType:"json",
  160. processData: false,
  161. contentType: false,
  162. success: function(info) {
  163. $("#loadingDiv").hide();
  164. //alert(info);
  165. json=info;
  166. //alert(json.test);
  167. if(json.file_type == 'notsafe')
  168. {
  169. if(window.speechSynthesis !=undefined)
  170. {
  171. var msg = new SpeechSynthesisUtterance("该文件类型不允许上传!");
  172. window.speechSynthesis.speak(msg);
  173. }
  174. alert("该文件类型不允许上传!");
  175. return;
  176. }
  177. var resulturl=json.result;
  178. urls=json.showlist;
  179. datanum=urls.length;
  180. nowpage=1;
  181. pagenum=Math.ceil(datanum/9);
  182. $("#showimg").css("display","block");
  183. $("#img").css("display","block");
  184. $("#img").attr("src",resulturl);
  185. $("#img_a").attr("href",resulturl);
  186. //$("#file").val("");
  187. $("#pagenum").text(nowpage+"/"+pagenum);
  188. $("#datanum").text("共"+datanum+"条");
  189. if(window.speechSynthesis !=undefined)
  190. {
  191. msg1 = "已将您的图像切分出:"+datanum+"条结果。"+"请按需保存";
  192. msg = new SpeechSynthesisUtterance(msg1);
  193. window.speechSynthesis.speak(msg);
  194. }
  195. $("tbody").empty();
  196. if(datanum<9)
  197. {
  198. for(var i=0;i<datanum;i=i+3)
  199. {
  200. if(datanum-i>=3)
  201. {
  202. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  203. }
  204. else if(datanum-i==2)
  205. {
  206. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> </tr>").appendTo("tbody")
  207. }
  208. else if(datanum-i==1)
  209. {
  210. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> </tr>").appendTo("tbody")
  211. }
  212. }
  213. }
  214. else
  215. {
  216. for(var i=0;i<9;i=i+3)
  217. {
  218. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  219. }
  220. }
  221. $j(".list_images").imgbox({
  222. 'speedIn' : 0,
  223. 'speedOut' : 0,
  224. 'alignment' : 'center',
  225. 'overlayShow' : true,
  226. 'allowMultiple' : false
  227. });
  228. },
  229. error:function(data) {
  230. $("#loadingDiv").hide();
  231. if(window.speechSynthesis !=undefined)
  232. {
  233. var msg = new SpeechSynthesisUtterance("请稍后请求服务器");
  234. window.speechSynthesis.speak(msg);
  235. }
  236. alert("请稍后请求服务器");
  237. }
  238. });
  239. /*
  240. $.ajax({
  241. url:"http://192.168.1.113:8000/project/split_3d/",
  242. type:"post",
  243. data: formData,
  244. processData: false,
  245. contentType: false,
  246. success: function(info) {
  247. alert("发送成功");
  248. }
  249. });*/
  250. }
  251. });
  252. $("#gotofirst").click(function()
  253. {
  254. $("tbody").empty();
  255. nowpage=1;
  256. $("#pagenum").text(nowpage+"/"+pagenum);
  257. $("#datanum").text("共"+datanum+"条");
  258. if(datanum<9)
  259. {
  260. for(var i=0;i<datanum;i=i+3)
  261. {
  262. if(datanum-i>=3)
  263. {
  264. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  265. }
  266. else if(datanum-i==2)
  267. {
  268. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> </tr>").appendTo("tbody")
  269. }
  270. else if(datanum-i==1)
  271. {
  272. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> </tr>").appendTo("tbody")
  273. }
  274. }
  275. }
  276. else
  277. {
  278. for(var i=0;i<9;i=i+3)
  279. {
  280. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  281. }
  282. }
  283. $j(".list_images").imgbox({
  284. 'speedIn' : 0,
  285. 'speedOut' : 0,
  286. 'alignment' : 'center',
  287. 'overlayShow' : true,
  288. 'allowMultiple' : false
  289. });
  290. });
  291. $("#gotonext").click(function()
  292. {
  293. if(nowpage==pagenum)
  294. {
  295. if(window.speechSynthesis !=undefined)
  296. {
  297. var msg = new SpeechSynthesisUtterance("已经是最后一页了");
  298. window.speechSynthesis.speak(msg);
  299. }
  300. alert("已经是最后一页了");
  301. }
  302. else if(nowpage+1==pagenum)
  303. {
  304. //alert("要显示最后一页了");
  305. $("tbody").empty();
  306. for(var i=9*(pagenum-1);i<datanum;i=i+3)
  307. {
  308. if(datanum-i>=3)
  309. {
  310. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  311. }
  312. else if(datanum-i==2)
  313. {
  314. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> </tr>").appendTo("tbody")
  315. }
  316. else if(datanum-i==1)
  317. {
  318. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> </tr>").appendTo("tbody")
  319. }
  320. }
  321. nowpage=nowpage+1;
  322. $("#pagenum").text(nowpage+"/"+pagenum);
  323. $j(".list_images").imgbox({
  324. 'speedIn' : 0,
  325. 'speedOut' : 0,
  326. 'alignment' : 'center',
  327. 'overlayShow' : true,
  328. 'allowMultiple' : false
  329. });
  330. }
  331. else
  332. {
  333. $("tbody").empty();
  334. for(var i=9*nowpage;i<9*nowpage+9;i=i+3)
  335. {
  336. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  337. }
  338. nowpage=nowpage+1;
  339. $("#pagenum").text(nowpage+"/"+pagenum);
  340. $j(".list_images").imgbox({
  341. 'speedIn' : 0,
  342. 'speedOut' : 0,
  343. 'alignment' : 'center',
  344. 'overlayShow' : true,
  345. 'allowMultiple' : false
  346. });
  347. }
  348. });
  349. $("#gotopre").click(function()
  350. {
  351. if(nowpage==1)
  352. {
  353. if(window.speechSynthesis !=undefined)
  354. {
  355. var msg = new SpeechSynthesisUtterance("已经是第一页了");
  356. window.speechSynthesis.speak(msg);
  357. }
  358. alert("已经是第一页了");
  359. }
  360. else
  361. {
  362. nowpage=nowpage-1;
  363. $("tbody").empty();
  364. for(var i=9*(nowpage-1);i<9*(nowpage-1)+9;i=i+3)
  365. {
  366. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody");
  367. }
  368. $("#pagenum").text(nowpage+"/"+pagenum);
  369. $j(".list_images").imgbox({
  370. 'speedIn' : 0,
  371. 'speedOut' : 0,
  372. 'alignment' : 'center',
  373. 'overlayShow' : true,
  374. 'allowMultiple' : false
  375. });
  376. }
  377. });
  378. $("#gotolast").click(function()
  379. {
  380. $("tbody").empty();
  381. for(var i=9*(pagenum-1);i<datanum;i=i+3)
  382. {
  383. if(datanum-i>=3)
  384. {
  385. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  386. }
  387. else if(datanum-i==2)
  388. {
  389. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> </tr>").appendTo("tbody")
  390. }
  391. else if(datanum-i==1)
  392. {
  393. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> </tr>").appendTo("tbody")
  394. }
  395. }
  396. nowpage=pagenum;
  397. $("#pagenum").text(nowpage+"/"+pagenum);
  398. $j(".list_images").imgbox({
  399. 'speedIn' : 0,
  400. 'speedOut' : 0,
  401. 'alignment' : 'center',
  402. 'overlayShow' : true,
  403. 'allowMultiple' : false
  404. });
  405. });
  406. $("#gopage_number").click(function()
  407. {
  408. var pagenumber=parseInt($("#selectnumber").val());
  409. if(pagenumber<1)
  410. {
  411. if(window.speechSynthesis !=undefined)
  412. {
  413. var msg = new SpeechSynthesisUtterance("选择的页号超出了范围");
  414. window.speechSynthesis.speak(msg);
  415. }
  416. alert("选择的页号超出了范围");
  417. }
  418. else if(pagenumber<pagenum)
  419. {
  420. $("tbody").empty();
  421. for(var i=9*(pagenumber-1);i<9*(pagenumber-1)+9;i=i+3)
  422. {
  423. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody");
  424. }
  425. nowpage=pagenumber;
  426. $("#pagenum").text(nowpage+"/"+pagenum);
  427. $j(".list_images").imgbox({
  428. 'speedIn' : 0,
  429. 'speedOut' : 0,
  430. 'alignment' : 'center',
  431. 'overlayShow' : true,
  432. 'allowMultiple' : false
  433. });
  434. }
  435. else if(pagenumber==pagenum)
  436. {
  437. $("tbody").empty();
  438. for(var i=9*(pagenum-1);i<datanum;i=i+3)
  439. {
  440. if(datanum-i>=3)
  441. {
  442. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> <td><a class=\"list_images\" href=\""+urls[i+2]+"\"><img src=\""+urls[i+2]+"\"/></a></td></tr>").appendTo("tbody")
  443. }
  444. else if(datanum-i==2)
  445. {
  446. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> <td> <a class=\"list_images\" href=\""+urls[i+1]+"\"><img src=\""+urls[i+1]+"\"/></a></td> </tr>").appendTo("tbody")
  447. }
  448. else if(datanum-i==1)
  449. {
  450. $("<tr><td><a class=\"list_images\" href=\""+urls[i]+"\"><img src=\""+urls[i]+"\"/></a></td> </tr>").appendTo("tbody")
  451. }
  452. }
  453. nowpage=pagenum;
  454. $("#pagenum").text(nowpage+"/"+pagenum);
  455. $j(".list_images").imgbox({
  456. 'speedIn' : 0,
  457. 'speedOut' : 0,
  458. 'alignment' : 'center',
  459. 'overlayShow' : true,
  460. 'allowMultiple' : false
  461. });
  462. }
  463. else
  464. {
  465. if(window.speechSynthesis !=undefined)
  466. {
  467. var msg = new SpeechSynthesisUtterance("选择的页号超出了范围");
  468. window.speechSynthesis.speak(msg);
  469. }
  470. alert("选择的页号超出了范围");
  471. }
  472. });
  473. })