数字调音台台16LEVEL DEL AY T ME是什么

Ay, Candela专辑_Ay, CandelaIbrahim Ferrer_在线试听 - 虾米音乐
Loading...
Ay, Candela
唱片公司:
发行时间:
专辑类别:
专辑风格:
, , , , , ,
我的评价:
Ibrahim Ferrer专辑介绍:Ay Candela is the most interesting and compelling kind of compilation recording. Not merely a hastily packaged rehash meant to cash in on a vital artists current reputation: It is, in essence, a history of the singer and his time, his pattern of travel through Cubas street fairs, small-time recording studios, night clubs, and finally to the worlds most prestigious stages a as member of the Buena Vista Social Club. The recordings compiled here were done over various periods in Ibrahim Ferrers career, and include the canonical pillars of his repertoire like the title track, and the wondrously joyful "De Camino a la Verada," which he wrote new versions for. There is also a lovely duet here with Carlos Querol called "Santa Cecilia" that dates back to the beginnings of the 20th century. One of the bonuses of this collection is "Una Fuerza Inmensa," a beautiful solo bolero. For the price this is a fantastic buy. There isnt a stray or mediocre moment in the bunch, and the music virtually crackles with energy, vitality and happiness. These are the root sounds of one of Cubas greatest vocal stylists and offer proof of the depth and breadth of his legacy and contribution.
document.write(tip_tmpl);
setTimeout(function() {
$('#tip_60d').fadeOut();
}, 30000);
Compositor Confundido
使用手机扫码收听专辑
打开虾米音乐APP
点击 扫一扫
扫描二维码
收藏了这张专辑的人们...
Ibrahim Ferrer的其他热门专辑
资料贡献者:
音频贡献者:
关注虾米:调音的技术
我的图书馆
调音的技术
调音的技术
[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢【先科AY-先科小音箱、收音机、扩音器等。】价格_厂家_图片 -Hc360慧聪网
您是不是在找:
买家还在看:
商品数量:
广东省&深圳市
手机访问店铺
供应先科AY-先科小音箱、收音机、扩音器等。
卖家承诺72小时发货
相关商品推荐
&102.50/台
&18.00/个
&3.30/个
&6.80/台
&40.00/只
&788.00/块
商家等级:
所在地区:
广东省 深圳市
认证信息:
同参数产品
同参数产品
同参数产品
同参数产品
同参数产品
正在加载中........
慧聪网厂家深圳市先科SAST新世纪科技有限公司为您提供先科AY-先科小音箱、收音机、扩音器等。的详细产品价格、产品图片等产品介绍信息,您可以直接联系厂家获取先科AY-先科小音箱、收音机、扩音器等。的具体资料,联系时请说明是在慧聪网看到的。
热门商品推荐
我的浏览记录
MP4相关资源
MP4相关热门专题
您在慧聪网上采购商品属于商业贸易行为。以上所展示的信息由卖家自行提供,内容的真实性、准确性和合法性由发布卖家负责,请意识到互联网交易中的风险是客观存在的。推荐使用慧付宝资金保障服务,保障您的交易安全!
按字母分类 :
让慧聪网撮合专家为您解决采购难题
您采购的产品:
请输入采购产品
您的手机号码:
请输入手机号码
*采购产品:
请输入采购产品
*采购数量/单位:
请输入采购数量
请选择单位
*采购截止日期:
请输入正确的手机号码
请输入验证码
*短信验证码:
<input id="valid_Code1" maxlength="6" placeholder="请输入验证码" name="VALIDCODE" class="codeInput" onkeyup="this.value=this.value.replace(/\D/g,'')" onkeypress="if(event.keyCode
57) event.returnValue =" type="text">
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
发送成功!
慧聪已收到您的需求,我们会尽快通知卖家联系您,同时会派出采购专员1对1为您提供服务,请您耐心等待!
电话:4 &&
联系人:董娟&销售经理
公司名称:深圳市先科SAST新世纪科技有限公司
请输入正确的手机号码
请输入验证码
*短信验证码:
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
每一份需求都会在24小时内得到行业多家优质供应商报价。
每一份需求的报价供应商工商信用资质都会经过专业人员检验,交易安全有保障。
免费咨询行业专家
免费咨询行业专家
服务主题:
筛选发货地
验证供应商真伪
提供其他优质供应商
采购数量:
用途描述:
成功加入采购单!
当前采购单共3种货品
成功加入采购单!
当前采购单共3种货品
不能购买自己发布的产品!
选中货品中含失效货品,无法完成下单,可能是:
1.货品库存不足
2.货品已过期,或被卖家删除
3.货品不支持在线交易
卖家暂时不在线,留下联系方式,卖家会主动联系您
*我要采购:
我的姓名:
留言内容:Sign in anonymously
ImageSplitter v1.0.0.7 Update of 26 March 2014 (Multi Images Split allowed)
ImageSplitter v1.0.0.7 Update of 26 March 2014 (Multi Images Split allowed)
March 24, 2014 in
Create an account or sign in to comment
You need to be a member in order to leave a comment
Sign up for a new account in our community. It's easy!
Already have an account? Sign in here.
MapIt is a tile world editor.
MapIt was built around the concept of reversing Dragon Warrior map images.
MapIt can take image input and produce a tile and world array.
MapIt features Unity style dragable labels that adjust property values.
MapParser is a C++ project that scans images for unique tiles.
MapParser is very fast.
Due to hard drive failure, many bugs were restored b/c I had to rewind many years.
Frustrated with the design, I wrote a new version from the ground up.
This New Version:
AutoIt Front-end, command line controls, and s so that I can't lose it again.
You can toggle the C++ MapParser off to see the difference in speeds between the MapParser CPP verse AutoIt function.
Function is named Scan_Tiles() in AutoIt.
You can also chose to download without MapParser.exe.
At the moment Scanning a image resets the arrays, but you can add tiles after scanning.
Images can be added as tiles without scan image at all.
Then configure settings to give your world parameters and manually fill the world data with tile indexes.
Using the settings you can change tile size after a scan.
Example: you wanted to replace a map with different sized tiles.
Changing and replacing tile / world data is easy.
B/c tile world editor.
Hotkeys, I use CTRL+R in image above to signal replace tile action and I use "G" to Get the tile under mouse.
Hotkeys are not saved to disk and thus are set to default between sessions.
I might draw the world to pre-rendered surfaces and use them as multi-layer someday.
I do that in my AutoIt, DragonWarrior Remake but I could spend forever unsure what features are important for this.
The DW_Remake has a method of replacing a tile with a tile on two layers.
So you could replace a tree on the first layer with a grass, and a tree in the second layer.
This is all getting very confusing.
I attempted to write the good code.
If something could be better, please advise.
Fifth release.
For download, videos, and example of cre please visit the MapIt webpage: http://songersoft.com/programming/mapit/mapit_about.phtml
Special thanks: @AdmiralAlkex, @Melba23, @MrCreatoR
Main AutoIt source file: Will not run without other Includes and SDL DLLs.
Last Update: 5/26/ PM EST
REMOVED CODE BLOCK:
I was informed the this page loaded very slowly, one solution so far has been to remove the 2k lines in the code block.
When I recieve more feedback from the User I may reduce image size or remove images.
Next Version&#13;
Added: $eSETTING_TILE_LAST_PATH&#13;
I have the weekend, I want to write world layers with aBoard surfaces.
lenclstr746
HELLO GUYS
I'm a work on a background see and click bot project
I can complete it if your help me
(using imagesearch , gdi+ and
I would like to know if it's possible to pass an image recognition (captcha) system.
What are the ways to achieve this?
Just the references or links is enough for me by now.
Thanks by now!
Draw Path Points allows you to make line paths for drawing with gdi
You can even load an image and trace the outline
Save and load functionality undo and Don't Forget Rotate!
;Draw Path Points BILGUS 2018&#13;
;Includes&#13;
#include &File.au3&&#13;
#include &GDIPlus.au3&&#13;
#include &GUIConstants.au3&&#13;
#include &GuiEdit.au3&&#13;
#include &GuiListView.au3&&#13;
#include &GuiTab.au3&&#13;
#include &Misc.au3&&#13;
If OnAutoItExitRegister("_Exit") && 0 Then&#13;
_GDIPlus_Startup() ;initialize GDI+&#13;
ConsoleWrite("GDI+ Started" & @CRLF)&#13;
EndIf&#13;
Opt("MouseCoordMode", 2) ;Relative coords to the client area of the active window&#13;
Opt("PixelCoordMode", 2) ;Relative coords to the client area of the active window&#13;
Global $g_iXScale = 8&#13;
Global $g_iYScale = $g_iXScale&#13;
Global $g_sFileSave = @ScriptDir & "\DrawPath.txt" ;Default&#13;
Global $g_bClosePath = False&#13;
Global $g_bShowImage = False&#13;
Global $g_sImagefile = ""&#13;
Global $g_iUndo_Max = 50&#13;
Global $g_asUndo_Files[1] = [""]&#13;
Global $g_asRedo_Files[1] = [""]&#13;
Global $g_aPath_Points[1][2] = [[0, 0]]&#13;
Global $g_aPath_Rot_Points&#13;
Global $g_hForm1 = GUICreate("Draw Path Points", 615, 437, 192, 124)&#13;
Global $g_hSelSquare = GUICtrlCreateLabel("", 0, 0, 0, 0, $SS_BLACKFRAME, $WS_EX_TOPMOST)&#13;
GUICtrlSetState(-1, $GUI_HIDE)&#13;
;-------------------------------------------------------------------------------&#13;
Global Enum $eC1_delete, $eC1_del_all, $eC1_update, $eC1_shift_dn, $eC1_shift_up, _&#13;
$eC1_closepath, $eC1_showimg, $eC1_lock, $eC1_undo, $eC1_redo, $aCtl1_LAST&#13;
Global $g_ahCtl1[$aCtl1_LAST]&#13;
Control_Create_Group1()&#13;
;-------------------------------------------------------------------------------&#13;
Global Enum $eC2_zin, $eC2_zout, $eC2_dgroup, $eC2_decx, $eC2_incx, $eC2_decy, _&#13;
$eC2_incy, $eC2_edit_rot, $eC2_rot, $eC2_ud_rot, $eC2_rev, $eC2_toall, $aCtl2_LAST&#13;
Global $g_ahCtl2[$aCtl2_LAST]&#13;
Control_Create_Group2()&#13;
;-------------------------------------------------------------------------------&#13;
Global $g_hBtn_load = GUICtrlCreateButton("Load", 5, 1, 35, 20)&#13;
Global $g_hBtn_save = GUICtrlCreateButton("Save", 40, 1, 35, 20)&#13;
Global $g_hBtn_arr_disp = GUICtrlCreateButton("Array", 75, 1, 35, 20)&#13;
Global $g_hEdit_encoded = GUICtrlCreateEdit("", 115, 2, 50, 18, $ES_READONLY + $ES_AUTOHSCROLL, $WS_EX_STATICEDGE + $WS_EX_TRANSPARENT)&#13;
Global $g_hList1 = GUICtrlCreateListView("#|x|y", 5, 24, 161, 201, $LVS_SHOWSELALWAYS Or $LVS_SINGLESEL)&#13;
Global $g_hList1_LVN = GUICtrlCreateDummy() ;listview notifications&#13;
Global $g_hImage1 = GUICtrlCreatePic("", 200, 16, 400, 400, -1, $WS_EX_LAYERED)&#13;
Global $g_hTab1 = GUICtrlCreateTab(1, 225, 20, 500, $TCS_VERTICAL)&#13;
GUICtrlCreateTabItem(" ")&#13;
GUICtrlSetState(-1, $GUI_SHOW) ; will be display first&#13;
GUICtrlCreateTabItem(" ")&#13;
GUICtrlCreateTabItem("") ; end tabitem definition&#13;
For $i = 0 To UBound($g_ahCtl2) - 1&#13;
GUICtrlSetState($g_ahCtl2[$i], $GUI_HIDE)&#13;
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")&#13;
List_Update()&#13;
List_Index()&#13;
GUISetState(@SW_SHOW)&#13;
State_Save($g_aPath_Points)&#13;
Points_Update($g_aPath_Points)&#13;
Global $g_nMsg = 0&#13;
While 1&#13;
$g_nMsg = GUIGetMsg()&#13;
If $g_nMsg & 0 And $g_nMsg && $g_ahCtl2[$eC2_ud_rot] And $g_nMsg && $g_ahCtl2[$eC2_edit_rot] And GUICtrlRead($g_ahCtl2[$eC2_edit_rot]) && 0 Then&#13;
;ConsoleWrite("Cancel_Rotate? " & $g_nMsg & @CRLF)&#13;
If MsgBox($MB_ICONQUESTION + $MB_OKCANCEL + $MB_DEFBUTTON2, "Save?", "Save Rotated Points?", 10) == $IDOK Then&#13;
_GUICtrlEdit_SetText($g_ahCtl2[$eC2_edit_rot], "0")&#13;
$g_aPath_Points = $g_aPath_Rot_Points&#13;
State_Save($g_aPath_Points)&#13;
List_Update(List_Index())&#13;
_GUICtrlEdit_SetText($g_ahCtl2[$eC2_edit_rot], "0")&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage, List_Index()) ;, True)&#13;
EndIf&#13;
EndIf&#13;
Switch $g_nMsg&#13;
Case $GUI_EVENT_CLOSE&#13;
Case $g_hTab1&#13;
Tab1_Select()&#13;
Case $g_hSelSquare&#13;
;ConsoleWrite("SelSquare" & @CRLF)&#13;
SelSquare_Drag()&#13;
Case $g_hList1&#13;
;ConsoleWrite("List1 " & $g_nMsg & @CRLF)&#13;
Local $iIndex = List_Index()&#13;
If $iIndex && -1 Then&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage, $iIndex)&#13;
_GUICtrlListView_SetItemSelected($g_hList1, $iIndex, True, True)&#13;
EndIf&#13;
Case $g_hList1_LVN&#13;
Point_Selected($g_aPath_Points, $g_hImage1, List_Index())&#13;
Case $g_hList1_LVN&#13;
Case $g_hImage1&#13;
Image1_Clicked()&#13;
Case $g_hBtn_save&#13;
Btn_save_Clicked()&#13;
Case $g_hBtn_load&#13;
Btn_load_Clicked()&#13;
Case $g_hBtn_arr_disp&#13;
_ArrayDisplay($g_aPath_Points)&#13;
;-------------------------------------------------------------------&#13;
Case $g_ahCtl1[$eC1_shift_up]&#13;
$iIndex = List_Index()&#13;
Point_Swap($iIndex, -1)&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
Case $g_ahCtl1[$eC1_shift_dn]&#13;
$iIndex = List_Index()&#13;
Point_Swap($iIndex, 1)&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
Case $g_ahCtl1[$eC1_del_all]&#13;
$g_aPath_Points = 0&#13;
Global $g_aPath_Points[1][2] = [[0, 0]]&#13;
List_Update()&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
Case $g_ahCtl1[$eC1_delete]&#13;
$iIndex = List_Index()&#13;
Point_Delete($iIndex)&#13;
_GUICtrlListView_ClickItem($g_hList1, $iIndex)&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
Case $g_ahCtl1[$eC1_redo]&#13;
$g_aPath_Points = State_Restore($g_aPath_Points, False)&#13;
List_Update()&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
Case $g_ahCtl1[$eC1_undo]&#13;
$g_aPath_Points = State_Restore($g_aPath_Points, True)&#13;
List_Update()&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
Case $g_ahCtl1[$eC1_update]&#13;
List_Update(List_Index())&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
Ascii_Points($g_aPath_Points)&#13;
_GUICtrlEdit_SetSel($g_hEdit_encoded, 0, -1)&#13;
Case $g_ahCtl1[$eC1_closepath]&#13;
$g_bClosePath = Control_IsChecked($g_ahCtl1[$eC1_closepath])&#13;
List_Update(List_Index())&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
If $g_bClosePath Then&#13;
GUICtrlSetState($g_ahCtl2[$eC2_rev], $GUI_DISABLE)&#13;
GUICtrlSetState($g_ahCtl2[$eC2_rev], $GUI_ENABLE)&#13;
EndIf&#13;
Case $g_ahCtl1[$eC1_showimg]&#13;
If Not $g_bShowImage Then&#13;
$g_sImagefile = FileOpenDialog("Select an image", SplitDir($g_sImagefile), "All Files(*.*)", 0, SplitFileName($g_sImagefile), $g_hForm1)&#13;
EndIf&#13;
$g_bShowImage = Control_IsChecked($g_ahCtl1[$eC1_showimg])&#13;
List_Update(List_Index())&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
;-------------------------------------------------------------------&#13;
Case $g_ahCtl2[$eC2_zin]&#13;
If Control_IsChecked($g_ahCtl2[$eC2_toall]) Then&#13;
Points_Scale(1, 1)&#13;
$g_iXScale += 1&#13;
$g_iYScale += 1&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
EndIf&#13;
_GUICtrlListView_ClickItem($g_hList1, List_Index())&#13;
Case $g_ahCtl2[$eC2_zout]&#13;
If Control_IsChecked($g_ahCtl2[$eC2_toall]) Then&#13;
Points_Scale(-1, -1)&#13;
$g_iXScale -= 1&#13;
$g_iYScale -= 1&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
EndIf&#13;
_GUICtrlListView_ClickItem($g_hList1, List_Index())&#13;
Case $g_ahCtl2[$eC2_rev]&#13;
$iIndex = List_Index()&#13;
$g_aPath_Points = Points_Reverse($g_aPath_Points)&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage, $iIndex) ;, True)&#13;
List_Update($iIndex)&#13;
Case $g_ahCtl2[$eC2_edit_rot]&#13;
;ConsoleWrite("Rotate" & @CRLF)&#13;
$iIndex = List_Index()&#13;
Local $iDegrees = GUICtrlRead($g_ahCtl2[$eC2_edit_rot])&#13;
$g_aPath_Rot_Points = Points_Rotate($g_aPath_Points, $iDegrees)&#13;
Points_Update($g_aPath_Rot_Points, $g_bClosePath, $g_bShowImage, $iIndex) ;, True)&#13;
Case $g_ahCtl2[$eC2_incx]&#13;
Point_Adjust(1, 0, Control_IsChecked($g_ahCtl2[$eC2_toall]))&#13;
Case $g_ahCtl2[$eC2_decx]&#13;
Point_Adjust(-1, 0, Control_IsChecked($g_ahCtl2[$eC2_toall]))&#13;
Case $g_ahCtl2[$eC2_incy]&#13;
Point_Adjust(0, 1, Control_IsChecked($g_ahCtl2[$eC2_toall]))&#13;
Case $g_ahCtl2[$eC2_decy]&#13;
Point_Adjust(0, -1, Control_IsChecked($g_ahCtl2[$eC2_toall]))&#13;
EndSwitch&#13;
;----------------------------------------------------------------------------------------------------&#13;
Func _Exit()&#13;
_GDIPlus_Shutdown()&#13;
ConsoleWrite("GDI+ Stopped" & @CRLF)&#13;
State_Destroy()&#13;
EndF==&_Exit&#13;
Func Ascii_Points($aPts)&#13;
;encodes points into an ascii string&#13;
Local Const $iChrOffset = 33&#13;
Local Const $iMaxOffset = 126 - $iChrOffset&#13;
If Not IsArray($aPts) Then Return&#13;
Local $sAscEnc = StringFormat("%03i%05i", $iChrOffset, UBound($aPts) * 2 + 8)&#13;
If _ArrayMin($aPts) &= 0 And (_ArrayMax($aPts) - _ArrayMin($aPts)) &= $iMaxOffset Then&#13;
For $i = 0 To UBound($aPts) - 1&#13;
$sAscEnc = $sAscEnc & Chr($aPts[$i][0] + $iChrOffset) & Chr($aPts[$i][1] + $iChrOffset)&#13;
EndIf&#13;
_GUICtrlEdit_SetText($g_hEdit_encoded, $sAscEnc)&#13;
EndF==&Ascii_Points&#13;
Func Btn_load_Clicked()&#13;
ConsoleWrite("Load: " & SplitDir($g_sFileSave) & @CRLF)&#13;
$g_sFileSave = FileOpenDialog("Select a save file", SplitDir($g_sFileSave), "All Files(*.*)", 0, SplitFileName($g_sFileSave), $g_hForm1)&#13;
_FileReadToArray($g_sFileSave, $g_aPath_Points, 0, ",")&#13;
If @error Then&#13;
Dim $g_aPath_Points[1][2] = [[0, 0]]&#13;
State_Destroy()&#13;
State_Save($g_aPath_Points)&#13;
EndIf&#13;
List_Update()&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
EndF==&Btn_load_Clicked&#13;
Func Btn_save_Clicked()&#13;
List_Update(List_Index())&#13;
$g_sFileSave = FileOpenDialog("Select a save file", SplitDir($g_sFileSave), "All Files(*.*)", 0, SplitFileName($g_sFileSave), $g_hForm1)&#13;
_FileWriteFromArray($g_sFileSave, $g_aPath_Points, 0, Default, ",")&#13;
EndF==&Btn_save_Clicked&#13;
Func Control_Create_Group1()&#13;
Local $iX = 30&#13;
Local $iY = 225&#13;
$g_ahCtl1[$eC1_delete] = GUICtrlCreateButton("Delete", $iX + 0, $iY + 0, 50, 20)&#13;
$g_ahCtl1[$eC1_shift_dn] = GUICtrlCreateButton("+", $iX + 70, $iY + 0, 20, 20)&#13;
$g_ahCtl1[$eC1_shift_up] = GUICtrlCreateButton("-", $iX + 95, $iY + 0, 20, 20)&#13;
$g_ahCtl1[$eC1_del_all] = GUICtrlCreateButton("Delete All", $iX + 0, $iY + 25, 50, 20)&#13;
$g_ahCtl1[$eC1_update] = GUICtrlCreateButton("Update", $iX + 70, $iY + 25, 50, 20)&#13;
$g_ahCtl1[$eC1_undo] = GUICtrlCreateButton("Undo", $iX + 0, $iY + 50, 50, 20)&#13;
$g_ahCtl1[$eC1_redo] = GUICtrlCreateButton("Redo", $iX + 70, $iY + 50, 50, 20)&#13;
GUICtrlSetState($g_ahCtl1[$eC1_undo], $GUI_DISABLE)&#13;
GUICtrlSetState($g_ahCtl1[$eC1_redo], $GUI_DISABLE)&#13;
$g_ahCtl1[$eC1_closepath] = GUICtrlCreateCheckbox("Complete", $iX + 0, $iY + 70, 65, 25)&#13;
$g_ahCtl1[$eC1_showimg] = GUICtrlCreateCheckbox("Image", $iX + 0, $iY + 90, 65, 25)&#13;
$g_ahCtl1[$eC1_lock] = GUICtrlCreateCheckbox("Locked", $iX + 0, $iY + 110, 65, 25)&#13;
EndF==&Control_Create_Group1&#13;
Func Control_Create_Group2()&#13;
Local $iX = 30&#13;
Local $iY = 225&#13;
$g_ahCtl2[$eC2_rev] = GUICtrlCreateButton("Reverse", $iX + 0, $iY + 0, 50, 20)&#13;
$g_ahCtl2[$eC2_edit_rot] = GUICtrlCreateInput("0", $iX + 0, $iY + 25, 40, 20)&#13;
$g_ahCtl2[$eC2_ud_rot] = GUICtrlCreateUpdown(-1)&#13;
GUICtrlSetLimit($eC2_ud_rot, 360, -360)&#13;
$g_ahCtl2[$eC2_rot] = GUICtrlCreateButton("", $iX + 40, $iY + 25, 10, 20)&#13;
$g_ahCtl2[$eC2_dgroup] = GUICtrlCreateGroup("Coords", 5 + $iX + 70, $iY + 0, 55, 70)&#13;
$g_ahCtl2[$eC2_decy] = GUICtrlCreateButton("-", 24 + $iX + 70, 16 + $iY + 0, 17, 17)&#13;
$g_ahCtl2[$eC2_incy] = GUICtrlCreateButton("+", 24 + $iX + 70, 48 + $iY + 0, 17, 17)&#13;
$g_ahCtl2[$eC2_decx] = GUICtrlCreateButton("-", 8 + $iX + 70, 32 + $iY + 0, 17, 17)&#13;
$g_ahCtl2[$eC2_incx] = GUICtrlCreateButton("+", 40 + $iX + 70, 32 + $iY + 0, 17, 17)&#13;
GUICtrlCreateGroup("", -99, -99, 1, 1)&#13;
$g_ahCtl2[$eC2_zout] = GUICtrlCreateButton("Zoom -", $iX + 0, $iY + 75, 50, 20)&#13;
$g_ahCtl2[$eC2_zin] = GUICtrlCreateButton("Zoom +", $iX + 75, $iY + 75, 50, 20)&#13;
$g_ahCtl2[$eC2_toall] = GUICtrlCreateCheckbox("Apply to all", $iX + 0, $iY + 100, 80, 25)&#13;
EndF==&Control_Create_Group2&#13;
Func Control_IsChecked($IdCtrl)&#13;
Return (BitAND(GUICtrlRead($IdCtrl), $GUI_CHECKED) = $GUI_CHECKED)&#13;
EndF==&Control_IsChecked&#13;
Func GDI_Draw_ArrayPoints(ByRef $aPts, $hImage, $g_bClosePath, $iX, $iY, $sFileName, $iSelected = -1)&#13;
Local $hWnd = GUICtrlGetHandle($hImage)&#13;
If UBound($aPts) & 1 Then&#13;
Local $aPoints = GDI_Points($aPts, $iX, $iY)&#13;
Local $aPoints[1][2] = [[0, 0]]&#13;
EndIf&#13;
Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd) ;create a graphics object from a window handle&#13;
_GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)&#13;
If FileExists($sFileName) Then&#13;
Local $hBitmap = _GDIPlus_BitmapCreateFromFile($sFileName)&#13;
Local Const $iWidth = ScaleX(_GDIPlus_ImageGetWidth($hBitmap))&#13;
Local Const $iHeight = ScaleY(_GDIPlus_ImageGetHeight($hBitmap))&#13;
Local $hBitmap_Scaled = _GDIPlus_ImageResize($hBitmap, $iWidth, $iHeight) ;resize image&#13;
_GDIPlus_BitmapDispose($hBitmap) ;Done with initial bitmap&#13;
_GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap_Scaled, 0, 0)&#13;
_GDIPlus_BitmapDispose($hBitmap_Scaled)&#13;
EndIf&#13;
Local $hPen = _GDIPlus_PenCreate(0xFFFF0000, ScaleX(1))&#13;
Local $hEndCap = _GDIPlus_ArrowCapCreate(1, 1)&#13;
_GDIPlus_PenSetCustomEndCap($hPen, $hEndCap)&#13;
If $g_bClosePath Then _GDIPlus_GraphicsDrawPolygon($hGraphics, $aPoints, $hPen)&#13;
Local $iX0, $iY0, $iX1, $iY1&#13;
For $i = 1 To $aPoints[0][0]&#13;
If Not $g_bClosePath And $i & $aPoints[0][0] Then&#13;
$iX0 = $aPoints[$i][0]&#13;
$iY0 = $aPoints[$i][1]&#13;
$iX1 = $aPoints[$i + 1][0]&#13;
$iY1 = $aPoints[$i + 1][1]&#13;
_GDIPlus_GraphicsDrawLine($hGraphics, $iX0, $iY0, $iX1, $iY1, $hPen)&#13;
EndIf&#13;
_GDIPlus_ArrowCapDispose($hEndCap)&#13;
_GDIPlus_PenDispose($hPen)&#13;
_GDIPlus_GraphicsDispose($hGraphics)&#13;
Point_Selected($aPts, $hImage, $iSelected)&#13;
EndF==&GDI_Draw_ArrayPoints&#13;
Func GDI_Line_hPath_From_Points($aPts, $iXorig, $iYorig)&#13;
;Returns hpath object be sure to delete it when finished&#13;
Local $hPath = _GDIPlus_PathCreate() ;Create new path object&#13;
Local $aPoints = GDI_Points($aPts, $iXorig, $iYorig)&#13;
Local $iX0, $iY0, $iX1, $iY1&#13;
If IsArray($aPoints) Then&#13;
For $i = 1 To $aPoints[0][0] - 1&#13;
$iX0 = $aPoints[$i][0]&#13;
$iY0 = $aPoints[$i][1]&#13;
$iX1 = $aPoints[$i + 1][0]&#13;
$iY1 = $aPoints[$i + 1][1]&#13;
_GDIPlus_PathAddLine($hPath, $iX0, $iY0, $iX1, $iY1)&#13;
EndIf&#13;
Return $hPath&#13;
;_GDIPlus_PathDispose($hPath)&#13;
EndF==&GDI_Line_hPath_From_Points&#13;
Func GDI_Points($aPts, $iXo, $iYO)&#13;
Local $aGDIPts&#13;
If IsArray($aPts) And UBound($aPts) & 1 Then&#13;
Local $aGDIPts[UBound($aPts) + 1][2]&#13;
$aGDIPts[0][0] = UBound($aPts)&#13;
For $i = 1 To $aGDIPts[0][0] ;Build points list&#13;
$aGDIPts[$i][0] = ScaleX($aPts[$i - 1][0]) + $iXo&#13;
$aGDIPts[$i][1] = ScaleY($aPts[$i - 1][1]) + $iYO&#13;
Local $aGDIPts[1][2] = [[0, 0]]&#13;
EndIf&#13;
Return $aGDIPts&#13;
EndF==&GDI_Points&#13;
Func Image1_Clicked()&#13;
If Not Control_IsChecked($g_ahCtl1[$eC1_lock]) Then&#13;
Local $aCPos = ControlGetPos(GUICtrlGetHandle($g_hImage1), "", 0)&#13;
Local $aPos = MouseGetPos()&#13;
If IsArray($aPos) And IsArray($aCPos) Then&#13;
Local $iXn = Int(($aPos[0] - $aCPos[0] + ScaleX(1) / 2) / ScaleX(1))&#13;
Local $iYn = Int(($aPos[1] - $aCPos[1] + ScaleY(1) / 2) / ScaleY(1))&#13;
Point_Add(List_Index(), $iXn, $iYn)&#13;
EndIf&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
ToolTip("Locked")&#13;
Sleep(500)&#13;
ToolTip("")&#13;
EndIf&#13;
EndF==&Image1_Clicked&#13;
Func List_Index()&#13;
Static Local $hWndList1 = GUICtrlGetHandle($g_hList1)&#13;
Local $iIndex = _GUICtrlListView_GetSelectionMark($hWndList1)&#13;
If _GUICtrlListView_GetItemSelected($g_hList1, $iIndex) Then Return $iIndex&#13;
Return -1&#13;
EndF==&List_Index&#13;
Func List_Update($iIndex = -1)&#13;
Static $hWnd_List1 = GUICtrlGetHandle($g_hList1)&#13;
_GUICtrlListView_BeginUpdate($g_hList1)&#13;
_GUICtrlListView_DeleteAllItems($hWnd_List1)&#13;
For $i = 0 To UBound($g_aPath_Points) - 1&#13;
GUICtrlCreateListViewItem($i & "|" & $g_aPath_Points[$i][0] & "|" & $g_aPath_Points[$i][1], $g_hList1)&#13;
If $iIndex & -1 Then&#13;
_GUICtrlListView_ClickItem($g_hList1, $iIndex)&#13;
_GUICtrlListView_EnsureVisible($g_hList1, $iIndex)&#13;
EndIf&#13;
_GUICtrlListView_EndUpdate($g_hList1)&#13;
EndF==&List_Update&#13;
Func Point_Add($iIndex, $iX, $iY)&#13;
If $iIndex && -1 Then&#13;
_ArrayInsert($g_aPath_Points, $iIndex, $iX & "|" & $iY, 0)&#13;
_GUICtrlListView_InsertItem($g_hList1, $iIndex, $iIndex)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex, $iX, 1)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex, $iY, 2)&#13;
_GUICtrlListView_EnsureVisible($g_hList1, $iIndex)&#13;
_ArrayAdd($g_aPath_Points, $iX & "|" & $iY, 0)&#13;
GUICtrlCreateListViewItem(UBound($g_aPath_Points) - 1 & "|" & $iX & "|" & $iY, $g_hList1)&#13;
_GUICtrlListView_EnsureVisible($g_hList1, UBound($g_aPath_Points) - 1)&#13;
EndIf&#13;
State_Save($g_aPath_Points)&#13;
EndF==&Point_Add&#13;
Func Point_Adjust($iX, $iY, $bToAll)&#13;
If Not $bToAll Then&#13;
Local $iIndex = List_Index()&#13;
If $iIndex == -1 And IsArray($g_aPath_Points) Then $iIndex = UBound($g_aPath_Points) - 1&#13;
If $iIndex == -1 Then Return&#13;
$g_aPath_Points[$iIndex][0] += $iX&#13;
$g_aPath_Points[$iIndex][1] += $iY&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex, $g_aPath_Points[$iIndex][0], 1)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex, $g_aPath_Points[$iIndex][1], 2)&#13;
If $iIndex && UBound($g_aPath_Points) - 1 Then _GUICtrlListView_ClickItem($g_hList1, $iIndex)&#13;
For $i = 0 To UBound($g_aPath_Points) - 1&#13;
$g_aPath_Points[$i][0] += $iX&#13;
$g_aPath_Points[$i][1] += $iY&#13;
List_Update(List_Index())&#13;
EndIf&#13;
State_Save($g_aPath_Points)&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
EndF==&Point_Adjust&#13;
Func Point_Delete($iIndex)&#13;
If $iIndex && -1 Then&#13;
_ArrayDelete($g_aPath_Points, $iIndex)&#13;
_GUICtrlListView_DeleteItem($g_hList1, $iIndex)&#13;
State_Save($g_aPath_Points)&#13;
;List_Update($iIndex)&#13;
EndIf&#13;
EndF==&Point_Delete&#13;
Func Point_Modify($iIndex, $iX, $iY)&#13;
If $iIndex && -1 Then&#13;
$g_aPath_Points[$iIndex][0] = $iX&#13;
$g_aPath_Points[$iIndex][1] = $iY&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex, $iX, 1)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex, $iY, 2)&#13;
_GUICtrlListView_EnsureVisible($g_hList1, $iIndex)&#13;
State_Save($g_aPath_Points)&#13;
EndIf&#13;
EndF==&Point_Modify&#13;
Func Point_Selected($aPts, $hImage, $iIndex)&#13;
If $iIndex & -1 Then&#13;
GUICtrlSetState($g_hSelSquare, $GUI_HIDE)&#13;
Local $hWnd = GUICtrlGetHandle($hImage)&#13;
Local $aPos = ControlGetPos($hWnd, "", 0)&#13;
If IsArray($aPos) And IsArray($aPts) Then&#13;
_WinAPI_RedrawWindow($hWnd, Default, Default, $RDW_ERASENOW)&#13;
Local $iXs = ScaleX($aPts[$iIndex][0]) + $aPos[0] - ScaleX(1) / 2&#13;
Local $iYs = ScaleY($aPts[$iIndex][1]) + $aPos[1] - ScaleY(1) / 2&#13;
WinMove(GUICtrlGetHandle($g_hSelSquare), "", $iXs, $iYs, ScaleX(1), ScaleY(1))&#13;
GUICtrlSetState($g_hSelSquare, $GUI_SHOW)&#13;
;ConsoleWrite("Point_Selected" & @CRLF)&#13;
ConsoleWriteError("Error: Point_Selected" & @CRLF)&#13;
EndIf&#13;
EndIf&#13;
EndF==&Point_Selected&#13;
Func Point_Swap($iIndex1, $iNext)&#13;
_GUICtrlListView_BeginUpdate($g_hList1)&#13;
Local $iIndex2 = 0&#13;
Local $aTmp = 0&#13;
If $iIndex1 && -1 Then&#13;
$iIndex2 = $iIndex1 + $iNext&#13;
If $iIndex2 & UBound($g_aPath_Points) - 1 Then&#13;
$iIndex2 = 0&#13;
ElseIf $iIndex2 & 0 Then&#13;
$iIndex2 = UBound($g_aPath_Points) - 1&#13;
EndIf&#13;
_ArraySwap($g_aPath_Points, $iIndex1, $iIndex2)&#13;
Local $iX1 = _GUICtrlListView_GetItemText($g_hList1, $iIndex1, 2)&#13;
Local $iY1 = _GUICtrlListView_GetItemText($g_hList1, $iIndex1, 2)&#13;
Local $iX2 = _GUICtrlListView_GetItemText($g_hList1, $iIndex2, 2)&#13;
Local $iY2 = _GUICtrlListView_GetItemText($g_hList1, $iIndex2, 2)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex1, $iX2, 1)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex1, $iY2, 2)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex2, $iX1, 1)&#13;
_GUICtrlListView_SetItemText($g_hList1, $iIndex2, $iY1, 2)&#13;
_GUICtrlListView_ClickItem($g_hList1, $iIndex2)&#13;
_GUICtrlListView_EnsureVisible($g_hList1, $iIndex2)&#13;
;ConsoleWrite("Array Shift" & @CRLF)&#13;
If $iNext & 0 TARRAY SHIFT -- Melba23&#13;
Local $iUBound = UBound($g_aPath_Points) ; Get size of array&#13;
$aTmp = _ArrayExtract($g_aPath_Points, 0, $iUBound - 2) ; Extract all but last&#13;
_ArrayInsert($aTmp, 0, _ArrayExtract($g_aPath_Points, $iUBound - 1, Default)) ; Insert last at top&#13;
$g_aPath_Points = $aTmp&#13;
$aTmp = _ArrayExtract($g_aPath_Points, 1, Default) ; Extract all but top row&#13;
_ArrayAdd($aTmp, _ArrayExtract($g_aPath_Points, 0, 0)) ; Add top row at bottom&#13;
$g_aPath_Points = $aTmp&#13;
EndIf&#13;
List_Update(List_Index())&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
EndIf&#13;
State_Save($g_aPath_Points)&#13;
_GUICtrlListView_EndUpdate($g_hList1)&#13;
EndF==&Point_Swap&#13;
Func Points_Reverse($aPts)&#13;
Local $hPath = GDI_Line_hPath_From_Points($aPts, 0, 0)&#13;
;_GDIPlus_PathFlatten($hPath)&#13;
_GDIPlus_PathReverse($hPath)&#13;
Local $aPoints = _GDIPlus_PathGetPoints($hPath)&#13;
_GDIPlus_PathDispose($hPath)&#13;
If IsArray($aPoints) Then&#13;
;ConsoleWrite("Flipped_Points" & @CRLF)&#13;
Global $aPts_Rev[$aPoints[0][0]][2]&#13;
For $i = 1 To $aPoints[0][0]&#13;
$aPts_Rev[$i - 1][0] = Int($aPoints[$i][0] / ScaleX(1))&#13;
$aPts_Rev[$i - 1][1] = Int($aPoints[$i][1] / ScaleY(1))&#13;
Return $aPts_Rev&#13;
Return $aPts&#13;
EndIf&#13;
EndF==&Points_Reverse&#13;
Func Points_Rotate($aPts, $iDegrees)&#13;
Local $hPath = GDI_Line_hPath_From_Points($aPts, 0, 0)&#13;
;_GDIPlus_PathFlatten($hPath)&#13;
Local $hPen = _GDIPlus_PenCreate(0x0, ScaleX(1))&#13;
Local $aBounds = _GDIPlus_PathGetWorldBounds($hPath, 0, $hPen)&#13;
_GDIPlus_PenDispose($hPen)&#13;
If IsArray($aBounds) Then&#13;
Local $hMatrix = _GDIPlus_MatrixCreate()&#13;
_GDIPlus_MatrixTranslate($hMatrix, $aBounds[0] + $aBounds[2] / 2, $aBounds[1] + $aBounds[3] / 2)&#13;
_GDIPlus_MatrixRotate($hMatrix, $iDegrees)&#13;
_GDIPlus_MatrixTranslate($hMatrix, -($aBounds[0] + $aBounds[2] / 2), -($aBounds[1] + $aBounds[3] / 2))&#13;
_GDIPlus_PathTransform($hPath, $hMatrix)&#13;
_GDIPlus_MatrixDispose($hMatrix)&#13;
EndIf&#13;
Local $aPoints = _GDIPlus_PathGetPoints($hPath)&#13;
_GDIPlus_PathDispose($hPath)&#13;
If IsArray($aPoints) Then&#13;
;ConsoleWrite("Rotate_Points" & @CRLF)&#13;
Dim $aPts_Rev[$aPoints[0][0]][2]&#13;
For $i = 1 To $aPoints[0][0]&#13;
$aPts_Rev[$i - 1][0] = Int($aPoints[$i][0] / ScaleX(1))&#13;
$aPts_Rev[$i - 1][1] = Int($aPoints[$i][1] / ScaleY(1))&#13;
Return $aPts_Rev&#13;
Return $aPts&#13;
EndIf&#13;
EndF==&Points_Rotate&#13;
Func Points_Scale($iScaleX, $iScaleY)&#13;
For $i = 0 To UBound($g_aPath_Points) - 1&#13;
If $iScaleX & 0 Then&#13;
$g_aPath_Points[$i][0] *= 2&#13;
$g_aPath_Points[$i][0] /= 2&#13;
EndIf&#13;
If $iScaleY & 0 Then&#13;
$g_aPath_Points[$i][1] *= 2&#13;
$g_aPath_Points[$i][1] /= 2&#13;
EndIf&#13;
State_Save($g_aPath_Points)&#13;
List_Update(List_Index())&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage)&#13;
EndF==&Points_Scale&#13;
Func Points_Update($aPts, $g_bClosePath = False, $b_Show_Image = True, $iSelected = -1)&#13;
Local $_Image_File = $g_sImagefile&#13;
If Not $b_Show_Image Then $_Image_File = ""&#13;
GDI_Draw_ArrayPoints($aPts, $g_hImage1, $g_bClosePath, 0, 0, $_Image_File, $iSelected)&#13;
EndF==&Points_Update&#13;
Func ScaleX($iX)&#13;
Local $iXs = $g_iXScale&#13;
If $iXs == 0 Then $iXs = -1&#13;
If $iXs & 0 Then&#13;
$iX = $iX * $iXs&#13;
$iX = $iX / Abs($iXs)&#13;
EndIf&#13;
Return $iX&#13;
EndF==&ScaleX&#13;
Func ScaleY($iY)&#13;
Local $iYs = $g_iYScale&#13;
If $iYs == 0 Then $iYs = -1&#13;
If $iYs & 0 Then&#13;
$iY = $iY * $iYs&#13;
$iY = $iY / Abs($iYs)&#13;
EndIf&#13;
Return $iY&#13;
EndF==&ScaleY&#13;
Func SelSquare_Drag()&#13;
Local $iIndex = List_Index()&#13;
If $iIndex && -1 Then&#13;
Local $cInfo = GUIGetCursorInfo($g_hForm1)&#13;
Local $aPosSelOrig = ControlGetPos($g_hForm1, "", $g_hSelSquare)&#13;
If IsArray($aPosSelOrig) Then&#13;
Local $iSubtractX = $cInfo[0] - $aPosSelOrig[0]&#13;
Local $iSubtractY = $cInfo[1] - $aPosSelOrig[1]&#13;
EndIf&#13;
If IsArray($cInfo) Then&#13;
$cInfo = GUIGetCursorInfo($g_hForm1)&#13;
ControlMove($g_hForm1, "", $g_hSelSquare, $cInfo[0] - $iSubtractX, $cInfo[1] - $iSubtractY)&#13;
Until Not $cInfo[2]&#13;
EndIf&#13;
Local $aPosSelNew = ControlGetPos($g_hForm1, "", $g_hSelSquare)&#13;
If IsArray($aPosSelNew) And IsArray($aPosSelOrig) Then&#13;
Local $iXm = $g_aPath_Points[$iIndex][0] + Int(($aPosSelNew[0] - $aPosSelOrig[0]) / ScaleX(1))&#13;
Local $iYm = $g_aPath_Points[$iIndex][1] + Int(($aPosSelNew[1] - $aPosSelOrig[1]) / ScaleY(1))&#13;
Point_Modify($iIndex, $iXm, $iYm)&#13;
Points_Update($g_aPath_Points, $g_bClosePath, $g_bShowImage, $iIndex)&#13;
EndIf&#13;
EndIf&#13;
EndF==&SelSquare_Drag&#13;
Func SplitDir($FullPath)&#13;
Local $sDrive, $sDir, $sDummy&#13;
_PathSplit($FullPath, $sDrive, $sDir, $sDummy, $sDummy)&#13;
Return $sDrive & $sDir&#13;
EndF==&SplitDir&#13;
Func SplitFileName($FullPath)&#13;
Local $sDummy, $sFileName, $sExt&#13;
_PathSplit($FullPath, $sDummy, $sDummy, $sFileName, $sExt)&#13;
Return $sFileName & "" & $sExt&#13;
EndF==&SplitFileName&#13;
Func State_Cleanup(ByRef $a1)&#13;
If (UBound($a1) & $g_iUndo_Max + 2) Then&#13;
Local $a1Rem = _ArrayExtract($a1, 1, Default)&#13;
$a1Rem[0] = $a1[0]&#13;
Local $sTmp = $a1[1]&#13;
If $sTmp && "" And FileExists($sTmp) Then&#13;
FileDelete($sTmp)&#13;
;ConsoleWrite("Cleanup Delete (UnD) " & $sTmp & @CRLF)&#13;
EndIf&#13;
$a1 = $a1Rem&#13;
EndIf&#13;
EndF==&State_Cleanup&#13;
Func State_Destroy($bRedo_Only = False)&#13;
Local $sTmp&#13;
While (UBound($g_asRedo_Files) & 1)&#13;
$sTmp = _ArrayPop($g_asRedo_Files)&#13;
If $sTmp && "" And FileExists($sTmp) Then&#13;
FileDelete($sTmp)&#13;
;ConsoleWrite(", Delete (ReD) " & $sTmp)&#13;
If @error Then ConsoleWriteError("Failed to Delete " & $sTmp)&#13;
EndIf&#13;
GUICtrlSetState($g_ahCtl1[$eC1_redo], $GUI_DISABLE)&#13;
If $bRedo_Only Then Return&#13;
While (UBound($g_asUndo_Files) & 1)&#13;
$sTmp = _ArrayPop($g_asUndo_Files)&#13;
If $sTmp && "" And FileExists($sTmp) Then&#13;
FileDelete($sTmp)&#13;
;ConsoleWrite(", Delete (UnD)" & $sTmp)&#13;
If @error Then ConsoleWriteError("Failed to Delete " & $sTmp)&#13;
EndIf&#13;
GUICtrlSetState($g_ahCtl1[$eC1_undo], $GUI_DISABLE)&#13;
EndF==&State_Destroy&#13;
Func State_Is_Diff(ByRef $a1, ByRef $a2)&#13;
Local $bIsDiff = True&#13;
If UBound($a1) = UBound($a2) Then&#13;
$bIsDiff = False&#13;
For $i = UBound($a1) - 1 To 0 Step -1&#13;
If $a1[$i][0] == $a2[$i][0] And $a1[$i][1] == $a2[$i][1] Then&#13;
ContinueLoop&#13;
;ConsoleWrite("Diff " & $i & @CRLF)&#13;
$bIsDiff = True&#13;
ExitLoop&#13;
EndIf&#13;
;ConsoleWrite("Diff " & @CRLF)&#13;
EndIf&#13;
Return $bIsDiff&#13;
EndF==&State_Is_Diff&#13;
Func State_Restore(ByRef $aPts, $bUndo)&#13;
Local $sTmp = ""&#13;
Local $aRes&#13;
If $bUndo Then&#13;
$sTmp = _ArrayPop($g_asUndo_Files)&#13;
;ConsoleWrite(", Restore (UnD)" & $sTmp)&#13;
If $sTmp && "" And FileExists($sTmp) Then&#13;
_ArrayAdd($g_asRedo_Files, $sTmp)&#13;
_FileReadToArray($sTmp, $aRes, 0, ",")&#13;
If UBound($g_asUndo_Files) & 2 Then GUICtrlSetState($g_ahCtl1[$eC1_undo], $GUI_DISABLE)&#13;
If UBound($g_asRedo_Files) & 2 Then GUICtrlSetState($g_ahCtl1[$eC1_redo], $GUI_ENABLE)&#13;
If UBound($g_asUndo_Files) & 1 And Not State_Is_Diff($aPts, $aRes) Then Return State_Restore($aPts, $bUndo)&#13;
If Not @error Then Return $aRes&#13;
ConsoleWriteError("Failed to Restore " & $sTmp)&#13;
EndIf&#13;
$sTmp = _ArrayPop($g_asRedo_Files)&#13;
;ConsoleWrite(", Restore (ReD) " & $sTmp)&#13;
If $sTmp && "" And FileExists($sTmp) Then&#13;
_ArrayAdd($g_asUndo_Files, $sTmp)&#13;
_FileReadToArray($sTmp, $aRes, 0, ",")&#13;
If UBound($g_asRedo_Files) & 2 Then GUICtrlSetState($g_ahCtl1[$eC1_redo], $GUI_DISABLE)&#13;
If UBound($g_asUndo_Files) & 2 Then GUICtrlSetState($g_ahCtl1[$eC1_undo], $GUI_ENABLE)&#13;
If UBound($g_asRedo_Files) & 1 And Not State_Is_Diff($aPts, $aRes) Then Return State_Restore($aPts, $bUndo)&#13;
If Not @error Then Return $aRes&#13;
ConsoleWriteError("Failed to Restore " & $sTmp)&#13;
EndIf&#13;
EndIf&#13;
Return $aPts&#13;
EndF==&State_Restore&#13;
Func State_Save($aPts)&#13;
If $g_iUndo_Max & 1 Then Return&#13;
Local $sTmp = _TempFile(@TempDir, "DPP_")&#13;
If UBound($g_asRedo_Files) & 2 Then _ArrayAdd($g_asUndo_Files, _ArrayPop($g_asRedo_Files))&#13;
_ArrayAdd($g_asUndo_Files, $sTmp)&#13;
_FileWriteFromArray($sTmp, $aPts, 0, Default, ",")&#13;
If UBound($g_asRedo_Files) & 2 Then State_Destroy(True)&#13;
State_Cleanup($g_asUndo_Files)&#13;
;ConsoleWrite("Save State " & UBound($g_asUndo_Files) & " " & $sTmp & @CRLF)&#13;
If UBound($g_asUndo_Files) & 2 Then GUICtrlSetState($g_ahCtl1[$eC1_undo], $GUI_ENABLE)&#13;
If @error Then&#13;
MsgBox(0, @ScriptName & " Error", "Unable to create undo file " & $sTmp)&#13;
GUICtrlSetState($g_ahCtl1[$eC1_undo], $GUI_DISABLE)&#13;
GUICtrlSetState($g_ahCtl1[$eC1_redo], $GUI_DISABLE)&#13;
$g_iUndo_Max = 0&#13;
EndIf&#13;
EndF==&State_Save&#13;
Func Tab1_Select()&#13;
Local $iStateCtl1, $iStateCtl2&#13;
Local $tabindex = GUICtrlRead($g_hTab1)&#13;
;ConsoleWrite("tab" & $tabindex + 1 & "_selected" & @CRLF)&#13;
Select&#13;
Case $tabindex = 0&#13;
$iStateCtl1 = $GUI_SHOW&#13;
$iStateCtl2 = $GUI_HIDE&#13;
Case $tabindex = 1&#13;
$iStateCtl1 = $GUI_HIDE&#13;
$iStateCtl2 = $GUI_SHOW&#13;
Case Else&#13;
_GUICtrlTab_ActivateTab($g_hTab1, 0)&#13;
Return&#13;
EndSelect&#13;
For $i = 0 To UBound($g_ahCtl1) - 1&#13;
GUICtrlSetState($g_ahCtl1[$i], $iStateCtl1)&#13;
For $i = 0 To UBound($g_ahCtl2) - 1&#13;
GUICtrlSetState($g_ahCtl2[$i], $iStateCtl2)&#13;
EndF==&Tab1_Select&#13;
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)&#13;
Static Local $hWndList1 = GUICtrlGetHandle($g_hList1)&#13;
If Not IsHWnd($hWndList1) Then $hWndList1 = GUICtrlGetHandle($g_hList1)&#13;
If @error Then Return $GUI_RUNDEFMSG&#13;
If $wParam = $g_hList1 Then&#13;
Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam)&#13;
Switch DllStructGetData($tNMHDR, "Code")&#13;
Case $LVN_KEYDOWN, $NM_CLICK&#13;
GUICtrlSendToDummy($g_hList1_LVN, $lParam)&#13;
EndSwitch&#13;
EndIf&#13;
Return $GUI_RUNDEFMSG&#13;
EndF==&WM_NOTIFY
DrawPathPoints.au3
i want to copy a picture file to clipboard, so that i can paste the picture through ctrl+V
this is my code ,but it dosen't work :
#AutoIt3Wrapper_UseX64 = n&#13;
#Include &Clipboard.au3&&#13;
#include &GDIPlus.au3&&#13;
_GDIPlus_Startup()&#13;
$hClipboard_Bitmap = _GDIPlus_BitmapCreateFromFile('C:\1.jpg')&#13;
_ClipBoard_Open(0)&#13;
_ClipBoard_SetDataEx($hClipboard_Bitmap,$CF_BITMAP)&#13;
_ClipBoard_Close()&#13;
_GDIPlus_Shutdown()
can you help me
ImageSplitter v1.0.0.7 Update of 26 March 2014 (Multi Images Split allowed)}

我要回帖

更多关于 雅马哈调音台 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信