Advertisement
Guest User

Nguyễn Hoàng Vũ

a guest
Mar 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 2.67 KB | None | 0 0
  1. #include <GDIPlus.au3>
  2. #include <GUIConstantsEx.au3>
  3. #include <ScreenCapture.au3>
  4. #include <WinAPIHObj.au3>
  5.  
  6. Global $boolean = False
  7. Global $bool_crop = False
  8.  
  9. Example()
  10.  
  11. Func Example()
  12.     _GDIPlus_Startup() ;initialize GDI+
  13.     Local $iColor = 0
  14.     Local $hBitmap = _GDIPlus_BitmapCreateFromFile('10.jpg') ;convert GDI to GDI+ bitmap
  15.     $iWidth = _GDIPlus_ImageGetWidth($hBitmap)
  16.     $iHeight = _GDIPlus_ImageGetHeight($hBitmap)
  17.  
  18.     Global $crop[] = [$iWidth, $iHeight, 0, 0]
  19.  
  20.     For $iY = 0 To $iHeight - 1
  21.         $boolean = False
  22.         For $iX = 0 To $iWidth - 1
  23.             $iColor = _GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY) ;get current pixel color
  24.             If Hex($iColor, 6) < Hex(0x9FFFFF, 6) Then
  25. ;~               MsgBox(0,$iX,$iY)
  26.                 $boolean = True
  27.                 $bool_crop = True
  28.                 $crop[0] = ($iX < $crop[0]) ? $iX : $crop[0]
  29.                 $crop[1] = ($iY < $crop[1]) ? $iY : $crop[1]
  30.  
  31.                 $crop[2] = ($iX > $crop[2]) ? $iX : $crop[2]
  32.                 $crop[3] = ($iY > $crop[3]) ? $iY : $crop[3]
  33.  
  34.  
  35.             EndIf
  36.         Next
  37.         If ($boolean = False) And ($bool_crop = True) Then
  38.  
  39.             Local $hclone = _GDIPlus_BitmapCloneArea($hBitmap, $crop[0], $crop[1], $crop[2] - $crop[0], $crop[3] - $crop[1])
  40.             Crop_Clone_down($hclone)
  41. ;~         _GDIPlus_ImageSaveToFile($hclone, Random(100,99999,1) & '.jpg')
  42.  
  43.             $bool_crop = False
  44.             $crop[0] = $iWidth
  45.             $crop[1] = $iHeight
  46.             $crop[2] = 0
  47.             $crop[3] = 0
  48.         EndIf
  49.     Next
  50.  
  51. ;~     _GDIPlus_ImageSaveToFile($hBitmap,'4.jpg')
  52.  
  53.     _GDIPlus_BitmapDispose($hBitmap)
  54.     _GDIPlus_Shutdown()
  55. EndFunc   ;==>Example
  56.  
  57. Func Crop_Clone_down($hBitmap)
  58.  
  59.     Local $iWidth = _GDIPlus_ImageGetWidth($hBitmap)
  60.     Local $iHeight = _GDIPlus_ImageGetHeight($hBitmap)
  61.     Local $crop[] = [$iWidth, $iHeight, 0, 0], $bool_crop = False, $boolean = False
  62.     Local $iX, $iY, $iColor
  63.  
  64.     For $iX = 0 To $iWidth - 1
  65.         $boolean = False
  66.         For $iY = 0 To $iHeight - 1
  67.             $iColor = _GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY) ;get current pixel color
  68.             If Hex($iColor, 6) < Hex(0x9FFFFF, 6) Then
  69.                 $boolean = True
  70.                 $bool_crop = True
  71.                 $crop[0] = ($iX < $crop[0]) ? $iX : $crop[0]
  72.                 $crop[1] = ($iY < $crop[1]) ? $iY : $crop[1]
  73.  
  74.                 $crop[2] = ($iX > $crop[2]) ? $iX : $crop[2]
  75.                 $crop[3] = ($iY > $crop[3]) ? $iY : $crop[3]
  76.  
  77.  
  78.             EndIf
  79.         Next
  80.        
  81.         If (($boolean = False) And ($bool_crop = True)) Or (($bool_crop = True) And ($iX = $iWidth - 1)) Then
  82.  
  83.             Local $hclone = _GDIPlus_BitmapCloneArea($hBitmap, $crop[0], $crop[1], $crop[2] - $crop[0], $crop[3] - $crop[1])
  84.  
  85.             _GDIPlus_ImageSaveToFile($hclone, Random(100, 99999, 1) & '.jpg')
  86.  
  87.             $bool_crop = False
  88.             $crop[0] = $iWidth
  89.             $crop[1] = $iHeight
  90.             $crop[2] = 0
  91.             $crop[3] = 0
  92.         EndIf
  93.     Next
  94.  
  95. EndFunc   ;==>Crop_Clone_down
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement