meekaah Posted August 10, 2007 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
Zedna Posted August 10, 2007 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
Moderators SmOke_N Posted August 11, 2007 Moderators 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.
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