meekaah Posted August 10, 2007 Share Posted August 10, 2007 hi, i was wondering if its possible to convert a 24bit bmp to a 16bit bmp wih autoit, and if it is, how..? if someone has an idea , ill tak it! thanx in advance Link to comment Share on other sites More sharing options...
Zedna Posted August 10, 2007 Share Posted August 10, 2007 (edited) Look at Auto3Lib and it's GDI+ capabilities.EDIT:Especially at Rotate.au3 and instead of $GDIP_EPGTRANSFORMATION try to use $GDIP_EPGCOLORDEPTH Edited August 10, 2007 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted August 11, 2007 Moderators Share Posted August 11, 2007 (edited) Look at Auto3Lib and it's GDI+ capabilities. EDIT: Especially at Rotate.au3 and instead of $GDIP_EPGTRANSFORMATION try to use $GDIP_EPGCOLORDEPTHFailed attempts on my part with the above unless I just got the pixel information from bmp first, rather than using PixelGetColor() and sending the data raw from that. I've had this for a while... it's not pretty, but it seems to work... I'd rather see the correct way to do it, but patience + time is not my strong point latelyexpandcollapse popupMsgBox(0, '', _24To16(0xA3D1FF)) Func _24To16($nColor) $nColor = String($nColor) Local $sHex If StringInStr($sHex, '0x') = 0 Then $sHex = Hex($nColor, 6) Else $sHex = StringReplace($nColor, '0x', '') EndIf If StringLen($sHex) <> 6 Then Return SetError(1, 0, 0) Local $a24Bit[33] = [ "", _ "|00|01|02|03|04|05|06|07|","|08|09|0a|0b|0c|0d|0e|0f|", _ "|10|11|12|13|14|15|16|17|","|18|19|1a|1b|1c|1d|1e|1f|", _ "|20|21|22|23|24|25|26|27|","|28|29|2a|2b|2c|2d|2e|2f|", _ "|30|31|32|33|34|35|36|37|","|38|39|3a|3b|3c|3d|3e|3f|", _ "|40|41|42|43|44|45|46|47|","|48|49|4a|4b|4c|4d|4e|4f|", _ "|50|51|52|53|54|55|56|57|","|58|59|5a|5b|5c|5d|5e|5f|", _ "|60|61|62|63|64|65|66|67|","|68|69|6a|6b|6c|6d|6e|6f|", _ "|70|71|72|73|74|75|76|77|","|78|79|7a|7b|7c|7d|7e|7f|", _ "|80|81|82|83|84|85|86|87|","|88|89|8a|8b|8c|8d|8e|8f|", _ "|90|91|92|93|94|95|96|97|","|98|99|9a|9b|9c|9d|9e|9f|", _ "|a0|a1|a2|a3|a4|a5|a6|a7|","|a8|a9|aa|ab|ac|ad|ae|af|", _ "|b0|b1|b2|b3|b4|b5|b6|b7|","|b8|b9|ba|bb|bc|bd|be|bf|", _ "|c0|c1|c2|c3|c4|c5|c6|c7|","|c8|c9|ca|cb|cc|cd|ce|cf|", _ "|d0|d1|d2|d3|d4|d5|d6|d7|","|d8|d9|da|db|dc|dd|de|df|", _ "|e0|e1|e2|e3|e4|e5|e6|e7|","|e8|e9|ea|eb|ec|ed|ee|ef|", _ "|f0|f1|f2|f3|f4|f5|f6|f7|","|f8|f9|fa|fb|fc|fd|fe|ff|"] Local $a16Bit[33] = [ "", _ "00","08","10","18","21","29","31","39","42","4A","52", _ "5A","63","66","73","76","84","8C","94","9C","A5","AD", _ "B5","BD","C6","CE","D6","DE","E7","EF","F7","FF"] Local $aColorHex = StringRegExp($sHex, ".{2}", 3) If IsArray($aColorHex) = 0 Then Return SetError(2, 0, 0) Local $sHoldFound For $iCC = 0 To 2 For $xCC = 1 To 32 If StringRegExp($a24Bit[$xCC], "(?i)\|" & $aColorHex[$iCC] & "\|") Then $sHoldFound &= $a16Bit[$xCC] EndIf Next Next If $sHoldFound Then Return $sHoldFound Return SetError(3, 0, 0) EndFunc Edit: Doh!!! I've totally misread this thread I think (I thought you meant individual pixels)... Zedna has it right... Sorry Edited August 11, 2007 by SmOke_N Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now