NearestColor module

Share your advanced PureBasic knowledge/code with the community.
wilbert
PureBasic Expert
PureBasic Expert
Posts: 3870
Joined: Sun Aug 08, 2004 5:21 am
Location: Netherlands

Re: NearestColor module

Post by wilbert »

SeregaZ wrote:i think
Box(CurIconx8X*5, CurIconx8Y*5, 5, 5, ColorArr(palitranum)\colornum[IcEdColor-1]|$FF000000)
can help, but probably is not...
Have you tried it ?

You might need DrawingMode(Mode) as well to change the drawing mode.
Windows (x64)
Raspberry Pi OS (Arm64)
SeregaZ
Enthusiast
Enthusiast
Posts: 619
Joined: Fri Feb 20, 2009 9:24 am
Location: Almaty (Kazakhstan. not Borat, but Triple G)
Contact:

Re: NearestColor module

Post by SeregaZ »

probably fine :) my ugly hands is make it!

Code: Select all

Enumeration
  
  #Window
  
  #GFXEditorMAINEditGad
  
  #GFXEditorMAINEditImage
  
  #GFXEditorGrid
  
EndEnumeration


Structure colorarraystr
  Array Y.l(23)
EndStructure

Global Dim ColorCoordSoloImg.colorarraystr(15)

ColorCoordSoloImg(0)\Y(0) = 16711935
ColorCoordSoloImg(0)\Y(1) = 16711935
ColorCoordSoloImg(0)\Y(2) = 16711935
ColorCoordSoloImg(0)\Y(3) = 16711935
ColorCoordSoloImg(0)\Y(4) = 16711935
ColorCoordSoloImg(0)\Y(5) = 16711935
ColorCoordSoloImg(0)\Y(6) = 16711935
ColorCoordSoloImg(0)\Y(7) = 16711935
ColorCoordSoloImg(0)\Y(8) = 16711935
ColorCoordSoloImg(0)\Y(9) = 16711935
ColorCoordSoloImg(0)\Y(10) = 16711935
ColorCoordSoloImg(0)\Y(11) = 16711935
ColorCoordSoloImg(0)\Y(12) = 16711935
ColorCoordSoloImg(0)\Y(13) = 16711935
ColorCoordSoloImg(0)\Y(14) = 16711935
ColorCoordSoloImg(0)\Y(15) = 16711935
ColorCoordSoloImg(0)\Y(16) = 16711935
ColorCoordSoloImg(0)\Y(17) = 16711935
ColorCoordSoloImg(0)\Y(18) = 16711935
ColorCoordSoloImg(0)\Y(19) = 16711935
ColorCoordSoloImg(0)\Y(20) = 16711935
ColorCoordSoloImg(0)\Y(21) = 16711935
ColorCoordSoloImg(0)\Y(22) = 16711935
ColorCoordSoloImg(0)\Y(23) = 16711935
ColorCoordSoloImg(1)\Y(0) = 16711935
ColorCoordSoloImg(1)\Y(1) = 16711935
ColorCoordSoloImg(1)\Y(2) = 16711935
ColorCoordSoloImg(1)\Y(3) = 16711935
ColorCoordSoloImg(1)\Y(4) = 16711935
ColorCoordSoloImg(1)\Y(5) = 16711935
ColorCoordSoloImg(1)\Y(6) = 16711935
ColorCoordSoloImg(1)\Y(7) = 16711935
ColorCoordSoloImg(1)\Y(8) = 0
ColorCoordSoloImg(1)\Y(9) = 0
ColorCoordSoloImg(1)\Y(10) = 0
ColorCoordSoloImg(1)\Y(11) = 0
ColorCoordSoloImg(1)\Y(12) = 0
ColorCoordSoloImg(1)\Y(13) = 0
ColorCoordSoloImg(1)\Y(14) = 16711935
ColorCoordSoloImg(1)\Y(15) = 16711935
ColorCoordSoloImg(1)\Y(16) = 16711935
ColorCoordSoloImg(1)\Y(17) = 16711935
ColorCoordSoloImg(1)\Y(18) = 16711935
ColorCoordSoloImg(1)\Y(19) = 16711935
ColorCoordSoloImg(1)\Y(20) = 16711935
ColorCoordSoloImg(1)\Y(21) = 16711935
ColorCoordSoloImg(1)\Y(22) = 16711935
ColorCoordSoloImg(1)\Y(23) = 16711935
ColorCoordSoloImg(2)\Y(0) = 16711935
ColorCoordSoloImg(2)\Y(1) = 16711935
ColorCoordSoloImg(2)\Y(2) = 16711935
ColorCoordSoloImg(2)\Y(3) = 16711935
ColorCoordSoloImg(2)\Y(4) = 16711935
ColorCoordSoloImg(2)\Y(5) = 16711935
ColorCoordSoloImg(2)\Y(6) = 16711935
ColorCoordSoloImg(2)\Y(7) = 0
ColorCoordSoloImg(2)\Y(8) = 2359296
ColorCoordSoloImg(2)\Y(9) = 2359296
ColorCoordSoloImg(2)\Y(10) = 14370816
ColorCoordSoloImg(2)\Y(11) = 14370816
ColorCoordSoloImg(2)\Y(12) = 14370816
ColorCoordSoloImg(2)\Y(13) = 2359296
ColorCoordSoloImg(2)\Y(14) = 0
ColorCoordSoloImg(2)\Y(15) = 0
ColorCoordSoloImg(2)\Y(16) = 16711935
ColorCoordSoloImg(2)\Y(17) = 16711935
ColorCoordSoloImg(2)\Y(18) = 16711935
ColorCoordSoloImg(2)\Y(19) = 16711935
ColorCoordSoloImg(2)\Y(20) = 16711935
ColorCoordSoloImg(2)\Y(21) = 16711935
ColorCoordSoloImg(2)\Y(22) = 16711935
ColorCoordSoloImg(2)\Y(23) = 16711935
ColorCoordSoloImg(3)\Y(0) = 16711935
ColorCoordSoloImg(3)\Y(1) = 4727844
ColorCoordSoloImg(3)\Y(2) = 4727844
ColorCoordSoloImg(3)\Y(3) = 4727844
ColorCoordSoloImg(3)\Y(4) = 4727844
ColorCoordSoloImg(3)\Y(5) = 4727844
ColorCoordSoloImg(3)\Y(6) = 4727844
ColorCoordSoloImg(3)\Y(7) = 4727844
ColorCoordSoloImg(3)\Y(8) = 4727844
ColorCoordSoloImg(3)\Y(9) = 14370816
ColorCoordSoloImg(3)\Y(10) = 16776960
ColorCoordSoloImg(3)\Y(11) = 16776960
ColorCoordSoloImg(3)\Y(12) = 16776960
ColorCoordSoloImg(3)\Y(13) = 14370816
ColorCoordSoloImg(3)\Y(14) = 14370816
ColorCoordSoloImg(3)\Y(15) = 2359296
ColorCoordSoloImg(3)\Y(16) = 0
ColorCoordSoloImg(3)\Y(17) = 16711935
ColorCoordSoloImg(3)\Y(18) = 16711935
ColorCoordSoloImg(3)\Y(19) = 16711935
ColorCoordSoloImg(3)\Y(20) = 16711935
ColorCoordSoloImg(3)\Y(21) = 16711935
ColorCoordSoloImg(3)\Y(22) = 16711935
ColorCoordSoloImg(3)\Y(23) = 16711935
ColorCoordSoloImg(4)\Y(0) = 0
ColorCoordSoloImg(4)\Y(1) = 16777215
ColorCoordSoloImg(4)\Y(2) = 11899281
ColorCoordSoloImg(4)\Y(3) = 16777215
ColorCoordSoloImg(4)\Y(4) = 16777215
ColorCoordSoloImg(4)\Y(5) = 16777215
ColorCoordSoloImg(4)\Y(6) = 11899281
ColorCoordSoloImg(4)\Y(7) = 16777215
ColorCoordSoloImg(4)\Y(8) = 16777215
ColorCoordSoloImg(4)\Y(9) = 2359296
ColorCoordSoloImg(4)\Y(10) = 16777215
ColorCoordSoloImg(4)\Y(11) = 0
ColorCoordSoloImg(4)\Y(12) = 16776960
ColorCoordSoloImg(4)\Y(13) = 16776960
ColorCoordSoloImg(4)\Y(14) = 14370816
ColorCoordSoloImg(4)\Y(15) = 14370816
ColorCoordSoloImg(4)\Y(16) = 2359296
ColorCoordSoloImg(4)\Y(17) = 0
ColorCoordSoloImg(4)\Y(18) = 16711935
ColorCoordSoloImg(4)\Y(19) = 16711935
ColorCoordSoloImg(4)\Y(20) = 16711935
ColorCoordSoloImg(4)\Y(21) = 16711935
ColorCoordSoloImg(4)\Y(22) = 16711935
ColorCoordSoloImg(4)\Y(23) = 16711935
ColorCoordSoloImg(5)\Y(0) = 0
ColorCoordSoloImg(5)\Y(1) = 4727844
ColorCoordSoloImg(5)\Y(2) = 4727844
ColorCoordSoloImg(5)\Y(3) = 4727844
ColorCoordSoloImg(5)\Y(4) = 4727844
ColorCoordSoloImg(5)\Y(5) = 4727844
ColorCoordSoloImg(5)\Y(6) = 4727844
ColorCoordSoloImg(5)\Y(7) = 4727844
ColorCoordSoloImg(5)\Y(8) = 4727844
ColorCoordSoloImg(5)\Y(9) = 0
ColorCoordSoloImg(5)\Y(10) = 16777215
ColorCoordSoloImg(5)\Y(11) = 0
ColorCoordSoloImg(5)\Y(12) = 0
ColorCoordSoloImg(5)\Y(13) = 16776960
ColorCoordSoloImg(5)\Y(14) = 2359296
ColorCoordSoloImg(5)\Y(15) = 0
ColorCoordSoloImg(5)\Y(16) = 14370816
ColorCoordSoloImg(5)\Y(17) = 2359296
ColorCoordSoloImg(5)\Y(18) = 0
ColorCoordSoloImg(5)\Y(19) = 16711935
ColorCoordSoloImg(5)\Y(20) = 16711935
ColorCoordSoloImg(5)\Y(21) = 16711935
ColorCoordSoloImg(5)\Y(22) = 16711935
ColorCoordSoloImg(5)\Y(23) = 16711935
ColorCoordSoloImg(6)\Y(0) = 16711935
ColorCoordSoloImg(6)\Y(1) = 0
ColorCoordSoloImg(6)\Y(2) = 0
ColorCoordSoloImg(6)\Y(3) = 0
ColorCoordSoloImg(6)\Y(4) = 0
ColorCoordSoloImg(6)\Y(5) = 0
ColorCoordSoloImg(6)\Y(6) = 0
ColorCoordSoloImg(6)\Y(7) = 0
ColorCoordSoloImg(6)\Y(8) = 0
ColorCoordSoloImg(6)\Y(9) = 16776960
ColorCoordSoloImg(6)\Y(10) = 16777215
ColorCoordSoloImg(6)\Y(11) = 16777215
ColorCoordSoloImg(6)\Y(12) = 16776960
ColorCoordSoloImg(6)\Y(13) = 16776960
ColorCoordSoloImg(6)\Y(14) = 16776960
ColorCoordSoloImg(6)\Y(15) = 14370816
ColorCoordSoloImg(6)\Y(16) = 14370816
ColorCoordSoloImg(6)\Y(17) = 2359296
ColorCoordSoloImg(6)\Y(18) = 0
ColorCoordSoloImg(6)\Y(19) = 16711935
ColorCoordSoloImg(6)\Y(20) = 16711935
ColorCoordSoloImg(6)\Y(21) = 16711935
ColorCoordSoloImg(6)\Y(22) = 16711935
ColorCoordSoloImg(6)\Y(23) = 16711935
ColorCoordSoloImg(7)\Y(0) = 16711935
ColorCoordSoloImg(7)\Y(1) = 16711935
ColorCoordSoloImg(7)\Y(2) = 16711935
ColorCoordSoloImg(7)\Y(3) = 16711935
ColorCoordSoloImg(7)\Y(4) = 16711935
ColorCoordSoloImg(7)\Y(5) = 4727844
ColorCoordSoloImg(7)\Y(6) = 0
ColorCoordSoloImg(7)\Y(7) = 0
ColorCoordSoloImg(7)\Y(8) = 2359296
ColorCoordSoloImg(7)\Y(9) = 16776960
ColorCoordSoloImg(7)\Y(10) = 16776960
ColorCoordSoloImg(7)\Y(11) = 16776960
ColorCoordSoloImg(7)\Y(12) = 16776960
ColorCoordSoloImg(7)\Y(13) = 16776960
ColorCoordSoloImg(7)\Y(14) = 14370816
ColorCoordSoloImg(7)\Y(15) = 14370816
ColorCoordSoloImg(7)\Y(16) = 14370816
ColorCoordSoloImg(7)\Y(17) = 2359296
ColorCoordSoloImg(7)\Y(18) = 0
ColorCoordSoloImg(7)\Y(19) = 16711935
ColorCoordSoloImg(7)\Y(20) = 16711935
ColorCoordSoloImg(7)\Y(21) = 16711935
ColorCoordSoloImg(7)\Y(22) = 16711935
ColorCoordSoloImg(7)\Y(23) = 16711935
ColorCoordSoloImg(8)\Y(0) = 16711935
ColorCoordSoloImg(8)\Y(1) = 16711935
ColorCoordSoloImg(8)\Y(2) = 16711935
ColorCoordSoloImg(8)\Y(3) = 16711935
ColorCoordSoloImg(8)\Y(4) = 16711935
ColorCoordSoloImg(8)\Y(5) = 4727844
ColorCoordSoloImg(8)\Y(6) = 0
ColorCoordSoloImg(8)\Y(7) = 0
ColorCoordSoloImg(8)\Y(8) = 2359296
ColorCoordSoloImg(8)\Y(9) = 16776960
ColorCoordSoloImg(8)\Y(10) = 16776960
ColorCoordSoloImg(8)\Y(11) = 16776960
ColorCoordSoloImg(8)\Y(12) = 16776960
ColorCoordSoloImg(8)\Y(13) = 16776960
ColorCoordSoloImg(8)\Y(14) = 14370816
ColorCoordSoloImg(8)\Y(15) = 14370816
ColorCoordSoloImg(8)\Y(16) = 14370816
ColorCoordSoloImg(8)\Y(17) = 2359296
ColorCoordSoloImg(8)\Y(18) = 0
ColorCoordSoloImg(8)\Y(19) = 16711935
ColorCoordSoloImg(8)\Y(20) = 16711935
ColorCoordSoloImg(8)\Y(21) = 16711935
ColorCoordSoloImg(8)\Y(22) = 16711935
ColorCoordSoloImg(8)\Y(23) = 16711935
ColorCoordSoloImg(9)\Y(0) = 16711935
ColorCoordSoloImg(9)\Y(1) = 4727844
ColorCoordSoloImg(9)\Y(2) = 4727844
ColorCoordSoloImg(9)\Y(3) = 4727844
ColorCoordSoloImg(9)\Y(4) = 4727844
ColorCoordSoloImg(9)\Y(5) = 4727844
ColorCoordSoloImg(9)\Y(6) = 4727844
ColorCoordSoloImg(9)\Y(7) = 4727844
ColorCoordSoloImg(9)\Y(8) = 4727844
ColorCoordSoloImg(9)\Y(9) = 14370816
ColorCoordSoloImg(9)\Y(10) = 16776960
ColorCoordSoloImg(9)\Y(11) = 14370816
ColorCoordSoloImg(9)\Y(12) = 14370816
ColorCoordSoloImg(9)\Y(13) = 14370816
ColorCoordSoloImg(9)\Y(14) = 14370816
ColorCoordSoloImg(9)\Y(15) = 14370816
ColorCoordSoloImg(9)\Y(16) = 14370816
ColorCoordSoloImg(9)\Y(17) = 2359296
ColorCoordSoloImg(9)\Y(18) = 0
ColorCoordSoloImg(9)\Y(19) = 16711935
ColorCoordSoloImg(9)\Y(20) = 16711935
ColorCoordSoloImg(9)\Y(21) = 16711935
ColorCoordSoloImg(9)\Y(22) = 16711935
ColorCoordSoloImg(9)\Y(23) = 16711935
ColorCoordSoloImg(10)\Y(0) = 0
ColorCoordSoloImg(10)\Y(1) = 16777215
ColorCoordSoloImg(10)\Y(2) = 11899281
ColorCoordSoloImg(10)\Y(3) = 16777215
ColorCoordSoloImg(10)\Y(4) = 16777215
ColorCoordSoloImg(10)\Y(5) = 16777215
ColorCoordSoloImg(10)\Y(6) = 11899281
ColorCoordSoloImg(10)\Y(7) = 16777215
ColorCoordSoloImg(10)\Y(8) = 11899281
ColorCoordSoloImg(10)\Y(9) = 0
ColorCoordSoloImg(10)\Y(10) = 14370816
ColorCoordSoloImg(10)\Y(11) = 0
ColorCoordSoloImg(10)\Y(12) = 0
ColorCoordSoloImg(10)\Y(13) = 14370816
ColorCoordSoloImg(10)\Y(14) = 2359296
ColorCoordSoloImg(10)\Y(15) = 0
ColorCoordSoloImg(10)\Y(16) = 14370816
ColorCoordSoloImg(10)\Y(17) = 2359296
ColorCoordSoloImg(10)\Y(18) = 0
ColorCoordSoloImg(10)\Y(19) = 16711935
ColorCoordSoloImg(10)\Y(20) = 16711935
ColorCoordSoloImg(10)\Y(21) = 16711935
ColorCoordSoloImg(10)\Y(22) = 16711935
ColorCoordSoloImg(10)\Y(23) = 16711935
ColorCoordSoloImg(11)\Y(0) = 0
ColorCoordSoloImg(11)\Y(1) = 4727844
ColorCoordSoloImg(11)\Y(2) = 4727844
ColorCoordSoloImg(11)\Y(3) = 4727844
ColorCoordSoloImg(11)\Y(4) = 4727844
ColorCoordSoloImg(11)\Y(5) = 4727844
ColorCoordSoloImg(11)\Y(6) = 4727844
ColorCoordSoloImg(11)\Y(7) = 4727844
ColorCoordSoloImg(11)\Y(8) = 4727844
ColorCoordSoloImg(11)\Y(9) = 0
ColorCoordSoloImg(11)\Y(10) = 14370816
ColorCoordSoloImg(11)\Y(11) = 0
ColorCoordSoloImg(11)\Y(12) = 14370816
ColorCoordSoloImg(11)\Y(13) = 14370816
ColorCoordSoloImg(11)\Y(14) = 14370816
ColorCoordSoloImg(11)\Y(15) = 14370816
ColorCoordSoloImg(11)\Y(16) = 2359296
ColorCoordSoloImg(11)\Y(17) = 0
ColorCoordSoloImg(11)\Y(18) = 16711935
ColorCoordSoloImg(11)\Y(19) = 16711935
ColorCoordSoloImg(11)\Y(20) = 16711935
ColorCoordSoloImg(11)\Y(21) = 16711935
ColorCoordSoloImg(11)\Y(22) = 16711935
ColorCoordSoloImg(11)\Y(23) = 16711935
ColorCoordSoloImg(12)\Y(0) = 16711935
ColorCoordSoloImg(12)\Y(1) = 0
ColorCoordSoloImg(12)\Y(2) = 0
ColorCoordSoloImg(12)\Y(3) = 0
ColorCoordSoloImg(12)\Y(4) = 0
ColorCoordSoloImg(12)\Y(5) = 0
ColorCoordSoloImg(12)\Y(6) = 0
ColorCoordSoloImg(12)\Y(7) = 0
ColorCoordSoloImg(12)\Y(8) = 0
ColorCoordSoloImg(12)\Y(9) = 2359296
ColorCoordSoloImg(12)\Y(10) = 14370816
ColorCoordSoloImg(12)\Y(11) = 14370816
ColorCoordSoloImg(12)\Y(12) = 14370816
ColorCoordSoloImg(12)\Y(13) = 14370816
ColorCoordSoloImg(12)\Y(14) = 14370816
ColorCoordSoloImg(12)\Y(15) = 2359296
ColorCoordSoloImg(12)\Y(16) = 0
ColorCoordSoloImg(12)\Y(17) = 16711935
ColorCoordSoloImg(12)\Y(18) = 16711935
ColorCoordSoloImg(12)\Y(19) = 16711935
ColorCoordSoloImg(12)\Y(20) = 16711935
ColorCoordSoloImg(12)\Y(21) = 16711935
ColorCoordSoloImg(12)\Y(22) = 16711935
ColorCoordSoloImg(12)\Y(23) = 16711935
ColorCoordSoloImg(13)\Y(0) = 16711935
ColorCoordSoloImg(13)\Y(1) = 16711935
ColorCoordSoloImg(13)\Y(2) = 16711935
ColorCoordSoloImg(13)\Y(3) = 16711935
ColorCoordSoloImg(13)\Y(4) = 16711935
ColorCoordSoloImg(13)\Y(5) = 16711935
ColorCoordSoloImg(13)\Y(6) = 16711935
ColorCoordSoloImg(13)\Y(7) = 0
ColorCoordSoloImg(13)\Y(8) = 2359296
ColorCoordSoloImg(13)\Y(9) = 2359296
ColorCoordSoloImg(13)\Y(10) = 14370816
ColorCoordSoloImg(13)\Y(11) = 14370816
ColorCoordSoloImg(13)\Y(12) = 14370816
ColorCoordSoloImg(13)\Y(13) = 2359296
ColorCoordSoloImg(13)\Y(14) = 0
ColorCoordSoloImg(13)\Y(15) = 0
ColorCoordSoloImg(13)\Y(16) = 16711935
ColorCoordSoloImg(13)\Y(17) = 16711935
ColorCoordSoloImg(13)\Y(18) = 16711935
ColorCoordSoloImg(13)\Y(19) = 16711935
ColorCoordSoloImg(13)\Y(20) = 16711935
ColorCoordSoloImg(13)\Y(21) = 16711935
ColorCoordSoloImg(13)\Y(22) = 16711935
ColorCoordSoloImg(13)\Y(23) = 16711935
ColorCoordSoloImg(14)\Y(0) = 16711935
ColorCoordSoloImg(14)\Y(1) = 16711935
ColorCoordSoloImg(14)\Y(2) = 16711935
ColorCoordSoloImg(14)\Y(3) = 16711935
ColorCoordSoloImg(14)\Y(4) = 16711935
ColorCoordSoloImg(14)\Y(5) = 16711935
ColorCoordSoloImg(14)\Y(6) = 16711935
ColorCoordSoloImg(14)\Y(7) = 16711935
ColorCoordSoloImg(14)\Y(8) = 0
ColorCoordSoloImg(14)\Y(9) = 0
ColorCoordSoloImg(14)\Y(10) = 0
ColorCoordSoloImg(14)\Y(11) = 0
ColorCoordSoloImg(14)\Y(12) = 0
ColorCoordSoloImg(14)\Y(13) = 0
ColorCoordSoloImg(14)\Y(14) = 16711935
ColorCoordSoloImg(14)\Y(15) = 16711935
ColorCoordSoloImg(14)\Y(16) = 16711935
ColorCoordSoloImg(14)\Y(17) = 16711935
ColorCoordSoloImg(14)\Y(18) = 16711935
ColorCoordSoloImg(14)\Y(19) = 16711935
ColorCoordSoloImg(14)\Y(20) = 16711935
ColorCoordSoloImg(14)\Y(21) = 16711935
ColorCoordSoloImg(14)\Y(22) = 16711935
ColorCoordSoloImg(14)\Y(23) = 16711935
ColorCoordSoloImg(15)\Y(0) = 16711935
ColorCoordSoloImg(15)\Y(1) = 16711935
ColorCoordSoloImg(15)\Y(2) = 16711935
ColorCoordSoloImg(15)\Y(3) = 16711935
ColorCoordSoloImg(15)\Y(4) = 16711935
ColorCoordSoloImg(15)\Y(5) = 16711935
ColorCoordSoloImg(15)\Y(6) = 16711935
ColorCoordSoloImg(15)\Y(7) = 16711935
ColorCoordSoloImg(15)\Y(8) = 16711935
ColorCoordSoloImg(15)\Y(9) = 16711935
ColorCoordSoloImg(15)\Y(10) = 16711935
ColorCoordSoloImg(15)\Y(11) = 16711935
ColorCoordSoloImg(15)\Y(12) = 16711935
ColorCoordSoloImg(15)\Y(13) = 16711935
ColorCoordSoloImg(15)\Y(14) = 16711935
ColorCoordSoloImg(15)\Y(15) = 16711935
ColorCoordSoloImg(15)\Y(16) = 16711935
ColorCoordSoloImg(15)\Y(17) = 16711935
ColorCoordSoloImg(15)\Y(18) = 16711935
ColorCoordSoloImg(15)\Y(19) = 16711935
ColorCoordSoloImg(15)\Y(20) = 16711935
ColorCoordSoloImg(15)\Y(21) = 16711935
ColorCoordSoloImg(15)\Y(22) = 16711935
ColorCoordSoloImg(15)\Y(23) = 16711935



;{ прозрачный цвет для вставки из буфера обмена
Procedure ByteSwap32(addrLong)
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
    !mov rax, [p.v_addrLong]
    !mov ecx, [rax]
    !bswap ecx
    !mov [rax], ecx
  CompilerElse
    !mov eax, [p.v_addrLong]
    !mov ecx, [eax]
    !bswap ecx
    !mov [eax], ecx
  CompilerEndIf
EndProcedure

Procedure.i LoadImageTransparent(hLoadImg, TransparentColorRGB.l)   ;returns new image handle
  Protected width,height,pitch,imgbase, x,y, hImg32, *RGBA.Long
  width = ImageWidth(hLoadImg)
  height = ImageHeight(hLoadImg)
  hImg32 = CreateImage(#PB_Any, width, height, 32)
  If hImg32 = 0: ProcedureReturn 0: EndIf  
  If StartDrawing(ImageOutput(hImg32)) = 0
    FreeImage(hImg32):   ProcedureReturn 0
  EndIf  
  If DrawingBufferPixelFormat() & #PB_PixelFormat_32Bits_RGB
    TransparentColorRGB | $FF000000    ;Linux & OSX
  Else
    ByteSwap32(@TransparentColorRGB)   ;Windows
    TransparentColorRGB = (TransparentColorRGB >> 8) | $FF000000
  EndIf  
  DrawingMode(#PB_2DDrawing_Default)
  DrawImage(ImageID(hLoadImg),0,0,width,height)
  pitch = DrawingBufferPitch()
  imgbase = DrawingBuffer()
  width-1: height-1  ;to address from base 0
  For y = 0 To height
    *RGBA = imgbase + (y * pitch)
    For x = 0 To width
      If *RGBA\l = TransparentColorRGB
        *RGBA\l = 0  ;= RGBA(0,0,0, 0) ;set Alpha channel to 0 (fully transparent)
      EndIf
      *RGBA+4
    Next x
  Next y
  StopDrawing()  
  ProcedureReturn hImg32
EndProcedure

Procedure SetImageTransparent (hImg32, TransparentColorRGB.l)    ;returns 1 on success, 0 on error/fail
  Protected width,height,pitch,imgbase, x,y, *RGBA.Long
  If ImageDepth(hImg32) <> 32: ProcedureReturn 0: EndIf
  width = ImageWidth(hImg32)
  height = ImageHeight(hImg32)
  If StartDrawing(ImageOutput(hImg32)) = 0
    ProcedureReturn 0
  EndIf  
  If DrawingBufferPixelFormat() & #PB_PixelFormat_32Bits_RGB
    TransparentColorRGB | $FF000000    ;Linux & OSX
  Else
    ByteSwap32(@TransparentColorRGB)   ;Windows
    TransparentColorRGB = (TransparentColorRGB >> 8) | $FF000000
  EndIf  
  DrawingMode(#PB_2DDrawing_Default)
  pitch = DrawingBufferPitch()
  imgbase = DrawingBuffer()  
  width-1: height-1
  For y = 0 To height
    *RGBA = imgbase + (y * pitch)
    For x = 0 To width
      If *RGBA\l = TransparentColorRGB
        *RGBA\l = 0  ;= RGBA(0,0,0, 0) ;set Alpha channel to 0 (fully transparent)
      EndIf
      *RGBA+4
    Next x
  Next y
  StopDrawing()  
  ProcedureReturn 1 ;SUCCESS
EndProcedure
;}

;TransparentColorRGB = RGB(255, 0, 255)

;ByteSwap32(@TransparentColorRGB)

;TransparentColorRGB = (TransparentColorRGB >> 8) | $FF000000

;Debug Hex(RGB(255, 0, 255))
;Debug Hex(RGBA(255, 0, 255, 255))
;Debug Hex(TransparentColorRGB)

; перерисовка
Procedure GFXRePaint(markx.a, marky.a, fullrepaint.a=0)
  
  If fullrepaint
    If IsImage(#GFXEditorMAINEditImage)
      FreeImage(#GFXEditorMAINEditImage)
    EndIf
    CreateImage(#GFXEditorMAINEditImage, markx*5, marky*5, 32)
    
    ; repaint
    If StartDrawing(ImageOutput(#GFXEditorMAINEditImage))
      ; image
      For y = 0 To marky-1
        For x = 0 To markx-1
          Box(x*5, y*5, 5, 5, ColorCoordSoloImg(x)\Y(y))
        Next
      Next
      StopDrawing()  
      
      ; set transparent
      SetImageTransparent(#GFXEditorMAINEditImage, 16711935)
      
    EndIf
  EndIf
  
  ; out
  If StartDrawing(CanvasOutput(#GFXEditorMAINEditGad))
    ; filled backstage
    Box(0, 0, 160, 160, 16711935)
    ; greed
    If GetGadgetState(#GFXEditorGrid)
      Line( 41,   0,   1, 160, 0)
      Line( 81,   0,   1, 160, 0)
      Line(121,   0,   1, 160, 0)
      Line(  0,  41, 160,   1, 0)
      Line(  0,  81, 160,   1, 0)
      Line(  0, 121, 160,   1, 0)
    EndIf
    ; out image
    DrawingMode(#PB_2DDrawing_AlphaBlend)
    DrawImage(ImageID(#GFXEditorMAINEditImage), 0, 0)
    
    StopDrawing()
  EndIf
    
EndProcedure

If OpenWindow(#Window, 100, 100, 200, 200, "")
  
   
  
  CheckBoxGadget(#GFXEditorGrid,  10, 150, 40, 20,  "grid")  
  
  markx = 16
  marky = 24
  
  CanvasGadget(#GFXEditorMAINEditGad, 10, 10, markx*5, marky*5) 
  
  GFXRePaint(markx, marky, 1)
  
  Repeat
    Event = WaitWindowEvent()
    
    Select Event
      Case #PB_Event_Gadget
        EvGadget = EventGadget()
        Select EvGadget
          Case #GFXEditorMAINEditGad
            Select EventType()
              Case #PB_EventType_MouseMove
                  ; coordinates
                  xgad = GetGadgetAttribute(#GFXEditorMAINEditGad, #PB_Canvas_MouseX)
                  ygad = GetGadgetAttribute(#GFXEditorMAINEditGad, #PB_Canvas_MouseY)
                  ; count
                  CurIconx8X = xgad / 5 : If CurIconx8X > markx-1 : CurIconx8X = markx-1 : ElseIf CurIconx8X < 0 : CurIconx8X = 0 : EndIf
                  CurIconx8Y = ygad / 5 : If CurIconx8Y > marky-1 : CurIconx8Y = marky-1 : ElseIf CurIconx8Y < 0 : CurIconx8Y = 0 : EndIf
                  
                  ; only is change happen
                  If CurIconx8X <> oldCurIconx8X Or CurIconx8Y <> oldCurIconx8Y
                    oldCurIconx8X = CurIconx8X
                    oldCurIconx8Y = CurIconx8Y
                    
                    If dragndropflag = 1
                          
                          movetox = (xgad-startdndx)/5*5 ; step 5 pixels
                          movetoy = (ygad-startdndy)/5*5
                          
                          If StartDrawing(CanvasOutput(#GFXEditorMAINEditGad))
                            
                            Box(0, 0, 160, 160, 16711935)                            
                            
                            If GetGadgetState(#GFXEditorGrid)
                              Line( 41,   0,   1, 160, 0)
                              Line( 81,   0,   1, 160, 0)
                              Line(121,   0,   1, 160, 0)
                              Line(  0,  41, 160,   1, 0)
                              Line(  0,  81, 160,   1, 0)
                              Line(  0, 121, 160,   1, 0)
                            EndIf
                            
                            DrawingMode(#PB_2DDrawing_AlphaBlend)
                            DrawImage(ImageID(#GFXEditorMAINEditImage), movetox, movetoy)
                            
                            StopDrawing()                          
                          EndIf
                        EndIf
                    
                  EndIf
                
              Case #PB_EventType_LeftButtonDown
                dragndropflag = 1
                ; start position
                startdndx = xgad
                startdndy = ygad
                
              Case #PB_EventType_LeftButtonUp
                dragndropflag = 0
                
                    ; перерисовать картинку видимо
                    If StartDrawing(ImageOutput(#GFXEditorMAINEditImage))
                      ; paint from canvas to image
                      DrawImage(GetGadgetAttribute(#GFXEditorMAINEditGad,#PB_Canvas_Image), 0, 0)
                      
                      ; fill array with new data
                      For x = 0 To markx-1
                        For y = 0 To marky-1
                          ; get color
                          ColorCoordSoloImg(x)\Y(y) = Point(x*5, y*5)
                          
                          ;; repaint with remove greed lines
                          ;; and removing old transparents - didnt work
                          ;If ColorCoordSoloImg(x)\Y(y) = 16711935
                          ;  ; transparent?
                          ;  Box(x*5, y*5, 5, 5, 0)
                          ;Else
                          ;  ; not transparent?
                          ;  color = ColorCoordSoloImg(x)\Y(y)
                          ;  ByteSwap32(@color)
                          ;  color = (color >> 8) | $FF000000
                          ;  Box(x*5, y*5, 5, 5, color)
                          ;EndIf
                        Next
                      Next
                      StopDrawing()
                      
                    EndIf
                    
                    ; set out
                    GFXRePaint(markx, marky, 1)
                
              Case #PB_EventType_MouseLeave     ;{ 
                  CurIconx8X    = 0
                  CurIconx8Y    = 0
                  oldCurIconx8X = 0
                  oldCurIconx8Y = 0                  
                  ; restore (this is work with another cases with brush, or fill area)
                  GFXRePaint(markx, marky, 1)
                  ;}
                
            EndSelect
          Case #GFXEditorGrid
            GFXRePaint(16, 24, 0)
            
        EndSelect

            
      Case #PB_Event_CloseWindow
        Quit = 1


    EndSelect
    

  Until Quit = 1 
  
EndIf
Post Reply