Advertisement
YuJa

Untitled

Mar 20th, 2019
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 3.68 KB | None | 0 0
  1. #include <GDIPlus.au3>
  2. #include <File.au3>
  3.  
  4. $sTarget = "Untitled.png"
  5.  
  6. FileCopy(@ScriptDir & "\" & $sTarget, @ScriptDir & "\TempClone.png")
  7.  
  8. While 1
  9.     $aCheckMoreFile1 = _FileListToArray(@ScriptDir)
  10.  
  11.     CutLeft_Right(@ScriptDir & "\TempClone.png")
  12.  
  13.     $aCheckMoreFile2 = _FileListToArray(@ScriptDir)
  14.     If $aCheckMoreFile2[0] > $aCheckMoreFile1[0] Then
  15.         ContinueLoop
  16.     Else
  17.         ExitLoop
  18.     EndIf
  19.     Sleep(10)
  20. WEnd
  21.  
  22. MsgBox(0,"","Done")
  23.  
  24. Func CutLeft_Right($sPathImage)
  25.     Local $hBitmap, $hClone, $hImage, $hTempClone
  26.     Local $iX, $iY, $m, $n, $k, $l, $i, $iCheckColFullWhite, $iColor, $nLeft, $nTop, $nWidth, $nHeight
  27.  
  28.     _GDIPlus_Startup()
  29.  
  30.     $hImage = _GDIPlus_ImageLoadFromFile($sPathImage)
  31.  
  32.     $iX = _GDIPlus_ImageGetWidth($hImage)
  33.     $iY = _GDIPlus_ImageGetHeight($hImage)
  34.  
  35.     ;Kiểm tra màu điểm ảnh từ trên xuống dưới, từ trái qua phải
  36.     ;Hành động này kiểm tra điểm màu trắng liên tiếp cho đến khi thấy cạnh trái của text thì dừng
  37.     $n = 0
  38.     While $n < $iX
  39.         $iCheckColFullWhite = 0
  40.         For $i = 0 To $iY
  41.             $iColor = _GDIPlus_BitmapGetPixel($hImage, $n, $i)
  42.             ConsoleWrite(Abs(Dec(Hex($iColor, 8))) & @CRLF)
  43.             $iCheckColFullWhite += Number(Abs(Dec(Hex($iColor, 8))))
  44.         Next
  45.  
  46.         If ($iCheckColFullWhite <= $iY) Then
  47.             $n += 1
  48.             ContinueLoop
  49.         Else
  50.             ExitLoop
  51.         EndIf
  52.     WEnd
  53.  
  54.     ;Kiểm tra màu điểm ảnh từ trên xuống dưới, từ trái qua phải
  55.     ;Hành động này kiểm tra điểm màu của text liên tiếp cho đến khi thấy cột toàn trắng (hết text) thì dừng
  56.     $m = $n
  57.     While $m < $iX
  58.         $iCheckColFullWhite = 0
  59.         For $i = 0 To $iY
  60.             $iColor = _GDIPlus_BitmapGetPixel($hImage, $m, $i)
  61.             ConsoleWrite(Abs(Dec(Hex($iColor, 8))) & @CRLF)
  62.             $iCheckColFullWhite += Number(Abs(Dec(Hex($iColor, 8))))
  63.         Next
  64.  
  65.         If ($iCheckColFullWhite <= $iX) Then
  66.             ExitLoop
  67.         Else
  68.             $m += 1
  69.             ContinueLoop
  70.         EndIf
  71.     WEnd
  72.  
  73.     ;Kiểm tra màu điểm ảnh từ trái qua phải, từ trên xuống dưới
  74.     ;Hành động này kiểm tra điểm màu trắng liên tiếp cho đến khi thấy cạnh trên của text thì dừng
  75.     $k = 0
  76.     While $k < $iY
  77.         $iCheckColFullWhite = 0
  78.         For $i = $n To $m
  79.             $iColor = _GDIPlus_BitmapGetPixel($hImage, $i, $k)
  80.             ConsoleWrite(Abs(Dec(Hex($iColor, 8))) & @CRLF)
  81.             $iCheckColFullWhite += Number(Abs(Dec(Hex($iColor, 8))))
  82.         Next
  83.  
  84.         If ($iCheckColFullWhite <= $m) Then
  85.             $k += 1
  86.             ContinueLoop
  87.         Else
  88.             ExitLoop
  89.         EndIf
  90.     WEnd
  91.  
  92.     ;Kiểm tra màu điểm ảnh từ trái qua phải, từ trên xuống dưới
  93.     ;Hành động này kiểm tra điểm màu của text liên tiếp cho đến khi thấy dòng toàn trắng (hết text) thì dừng
  94.     $l = $k
  95.     While $l < $iY
  96.         $iCheckColFullWhite = 0
  97.         For $i = $n To $m
  98.             $iColor = _GDIPlus_BitmapGetPixel($hImage, $i, $l)
  99.             ConsoleWrite(Abs(Dec(Hex($iColor, 8))) & @CRLF)
  100.             $iCheckColFullWhite += Number(Abs(Dec(Hex($iColor, 8))))
  101.         Next
  102.  
  103.         If ($iCheckColFullWhite <= $m) Then
  104.             ExitLoop
  105.         Else
  106.             $l += 1
  107.             ContinueLoop
  108.         EndIf
  109.     WEnd
  110.  
  111.     $nLeft = $n
  112.     $nTop = $k
  113.     $nWidth = $m - $n
  114.     $nHeight = $l - $k
  115.  
  116.     $hClone = _GDIPlus_BitmapCloneArea($hImage, $nLeft, $nTop, $nWidth, $nHeight, $GDIP_PXF24RGB)
  117.     _GDIPlus_ImageSaveToFile($hClone, @ScriptDir & "\" & @MIN&@SEC&"-"&$m & ".png")
  118.  
  119.     $hTempClone = _GDIPlus_BitmapCloneArea($hImage, $m, 0, $iX - $m, $iY, $GDIP_PXF24RGB)
  120.     _GDIPlus_ImageSaveToFile($hTempClone, @TempDir & "\TempClone.png")
  121.  
  122.     _GDIPlus_ImageDispose($hClone)
  123.     _GDIPlus_ImageDispose($hTempClone)
  124.     _GDIPlus_ImageDispose($hImage)
  125.     _GDIPlus_Shutdown()
  126.  
  127.     FileDelete(@ScriptDir & "\TempClone.png")
  128.     FileMove(@TempDir & "\TempClone.png", @ScriptDir & "\TempClone.png")
  129. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement