Forum | | | | Thomas Freier | somehow have I a problem. I thought with DrawPic H, X, Y; n1[, n2] and the handle of an Bitmap can z.B. the Result the function @Create("HPIC",...) or ... could so did i *.png use or lie I with folgendem Skript fasch? CompileMarkSeparationDeclare bereich#,x&,y&,z&,p&,text$
Def GetSysColor(1) !"USER32","GetSysColor"
SetTrueColor 1
Proc CatchBmp
Parameters MemPointer&
Declare hDC&, BITMAPFILEHEADER#, BMPInfo&, init&, hImage&
hDC& = External("user32.dll", "GetDC", External("user32.dll", "GetDesktopWindow"))
Dim BITMAPFILEHEADER#, 14
BITMAPFILEHEADER# = MemPointer&
BMPInfo& = MemPointer& + 14
init& = MemPointer& + Long(BITMAPFILEHEADER#, 10)
hImage& = External("gdi32.dll", "CreateDIBitmap", hDC&, BMPInfo&, 4, init&, BMPInfo&, 0)
External("user32.dll", "ReleaseDC", External("user32.dll", "GetDesktopWindow"), hDC&)
Dispose BITMAPFILEHEADER#
Return hImage&
EndProc
*** Hier stehen die Bilddaten aus bmp direkt im Quellcode.
Erstellt am 21. Februar 2010 mit dem XProfan Datengenerator, (C) Frank Abbing
Datei: E:profanXDatengeneratoricon4.bmp (originale Dateigröße: 1334 Bytes)
Declare mem#
Dim mem#,1336
Clear mem#
Long mem#,0=87444802
Long mem#,8=70647808,2621440,1048576,1048576,65536,8,16777216
Long mem#,44=16777216
Long mem#,52=-617349120,-617283329,-634060545,-600571649,-600637185,1545142527,-600506244,-583728897,1545142527,-583794563,-96861953,-432537345,-517537537,-264765185,-567017217,-130416385,-735444737,2082734335,2099445904
Long mem#,128=1533280402,-449380262,1478230271,-231210905,-971570945,-904593153,-971636481,-550174465,-550108929,-298319617,-566886145,1853423871,-382271382,1533083903,-585695137,-1190199041,-482934535,890568959,-499711937
Long mem#,204=1782513919,1617625218,-516489122,-197525249,-533200641,1566376191,1882980448,1899692172,1966538895,-600768363,1364721919,-1474887602,-1005256476,-415891202,-130481921,-853278465,-551288577,1092223231,-1558773674
Long mem#,280=-1491861280,-2025979675,-534183766,1396703487,1545076828,1819672702,-399048596,-500891393,1578762495,1075314814,1262420043,1634140244,-466288542,1920925951,-1474887569,705954021,-921370575,-650837761,-667614977
Long mem#,356=-482868993,1562050815,-348716931,-718601985,-365494017,-466222849,-214368001,-1875246849,-466091852,1664811263,-382205834,1948385535,-365363065,-786038529,-583663361,-483000065,-1305673473,-706477877,-1407647534
Long mem#,432=-499777302,-516554497,-925433601,1904017605,-113639311,-874970881,1259995335,739508310,1276772402,-466812838,2084831487,-499646315,101449983,151912454,403701768,1882849305,-398983030,-1858469633,-1642659658
Long mem#,508=-331874087,-672792321,-247922476,1545404671,-2092826502,-1592262494,1713373404,1732378757,1648754813,524404,1110638592,-449314740,1545208063,-432603012,-1758199553,1431699648,-752353191,-921435905,1429471487
Long mem#,584=-667811741,1482555647,1914765401,-1171390333,470941907,-550043617,-954859265,-453836545,225
Long mem#,1076=1012727808,84229453,134744069,1967226373,579105603,50594863,151852558,67567872,1752726585,235471643,856786757,704708870,405485445,50331744,1863673183,1783300609,-2138274210,198459,1351113842,1331298818,-2121495506
Long mem#,1160=67132233,879174755,1196163402,-1936946128,102370416,172115978,756030722,-1936946036,122782496,258370857,321999878,-1936946036,588010380,227109966,-1943240155,-1936946036,529220748,476806015,-1943586805,-1936946036
Long mem#,1240=1077578892,1477597053,-1936972199,-1936946036,389975180,343167551,-1936974217,-1936946036,1988922508,891849270,-1936946055,-1936946036,1653378188,1896568370,-1936946106,-1936946036,-1936946036,2048467305,-1936946036
Long mem#,1316=-1936946036,-1936946036,1683320417,-1936946036,35980
Declare hBild&
hBild& = CatchBmp(mem#)
Dispose mem#
Erstellt am 21. Februar 2010 mit dem XProfan Datengenerator, (C) Frank Abbing
Datei: E:profanXDatengeneratoricon4.png (originale Dateigröße: 1049 Bytes)
Dim mem#,1052
Clear mem#
Long mem#,0=1196314761,169478669,218103808,1380206665,268435456,268435456,776,254617600,50331731,1414287360,886832965,-13247489,-587254310,870121268,-15115140,-570477092,425491765,-13312513,-419480838,669122360,-13045505
Long mem#,84=-117492514,718602042,-1843102576,1532633981,937820004,-14919577,-956352270,365625111,-15284481,-536922657,955186998,1781980927,-369133202,1633378103,-115876353,-469823559,355811127,-2110266625,1616789354,937557867
Long mem#,164=-12913409,1566587104,1014008925,-1791266417,-587253899,1481723441,-32003868,-402713148,972619574,-14365185,1096164575,396615706,-1441486875,-520143225,1079204905,1813535870,-385911188,635633463,1260019326,1263802432
Long mem#,244=1734435391,1865803007,-1461354638,338309399,-15349249,-654363175,954466101,-14983811,-704694293,938147627,-13179649,-1867236877,954531642,-12885130,1955018985,971702050,-14233089,-469813539,766692150,-354101806
Long mem#,324=-486598228,920780598,1909967045,-100696719,-640956614,840584022,1280971820,769982234,-12288875,101071074,235472908,-1978656743,-385926544,982627896,-15229223,-673957652,972160998,-1575134086,-1579400573,543589656
Long mem#,404=1950508925,18018,859982856,2084103679,-419489188,882360375,-11119271,-906024749,878011156,1496504575,1921211992,783995681,-15590369,-939575329,-203103978
Long mem#,808=1181556736,215,1094994388,1671198804,-998047256,135581884,1698824587,559303210,-2061949941,565843825,1972999177,576100457,-305861628,-901494141,1443029221,1122088206,812290321,-110192895,426568442,-1468724370
Long mem#,888=-1299238848,-1356378529,1141805930,-1875271360,-1925762211,1355034015,-1068487656,-439958237,616940769,302751787,1720513640,1230391648,-194842313,167786353,867391540,1959072819,1160851460,821423097,807684968
Long mem#,964=-1480118224,842262154,-1245354119,1214534705,-1175293133,-1290138698,-1251331535,682898330,816886761,1928432115,-1280167886,-1003432360,-1294272294,1886565042,970371184,51853974,1421583616,334163600,79,1313163520
Long mem#,1044=1614982724,130
Bitte nicht vergessen, die Variable mem# zum Programmende wieder freizugeben (Dispose).
Declare hBild1&
hBild1& = CatchBmp(mem#)
Dispose mem#
Cls
*** Bild anzeigen
DrawPic hBild&, 250,180, 1
DrawPic hBild1&, 250,220, 1
while 1
waitinput
Case %key=2:Break
Endwhile
*** Bild freigeben
DeleteObject hBild&
DeleteObjectd1&
END
|
| | | Gruß Thomas Windows XP SP2, XProfan X2 | 02/21/10 ▲ |
| |
| | Frank Abbing | The function CatchBmp() power the, what your name promising. tappt im dunkeln created a Grafikhandle a Bmp-File. only Bmp, Yes and Rle.
Probier times the data (as Bitmap) in that Clipboard copy and Create("HPIC".. and "&CLPBMP" loading. otherwise Tempfile. |
| | | | |
| | Thomas Freier | Frank, thanks for Info. having The latest Variante to of/ one while chosen and was I do not sure whether it with XProfan 11 now too differently possible is. The BMP-Variante remaining me Yes yet open. |
| | | Gruß Thomas Windows XP SP2, XProfan X2 | 02/21/10 ▲ |
| |
| | | @Thomas: I have the trouble not understood, is it resolved?
otherwise, goes it you therefore, Bilddaten from memory (mem#) one hPic zuzuordnen, circa this view? |
| | | | |
| | Andreas Miethe
| with one small detour works it too with PNG,JPG etc. even everything what The GPIPlus so loading can.
have whom code time circa CatchImage extended CompileMarkSeparationDeclare bereich#,x&,y&,z&,p&,text$
Def GetSysColor(1) !"USER32","GetSysColor"
SetTrueColor 1
Proc CatchBmp
Parameters MemPointer&
Declare hDC&, BITMAPFILEHEADER#, BMPInfo&, init&, hImage&
hDC& = External("user32.dll", "GetDC", External("user32.dll", "GetDesktopWindow"))
Dim BITMAPFILEHEADER#, 14
BITMAPFILEHEADER# = MemPointer&
BMPInfo& = MemPointer& + 14
init& = MemPointer& + Long(BITMAPFILEHEADER#, 10)
hImage& = External("gdi32.dll", "CreateDIBitmap", hDC&, BMPInfo&, 4, init&, BMPInfo&, 0)
External("user32.dll", "ReleaseDC", External("user32.dll", "GetDesktopWindow"), hDC&)
Dispose BITMAPFILEHEADER#
Return hImage&
EndProc
Proc CatchImage
Struct GdiplusStartupInput = GdiplusVersion&,DebugEventCallback&,SuppressBackgroundThread&,SuppressExternalCodecs&
Var GDIP& = ImportDll("Gdiplus.dll","")
Var OLE& = ImportDll("Ole32.dll","")
Var Kernel& = ImportDll("Kernel32.dll","")
Declare gdpsi#,gdiplusToken&,ImageObject&,GraphicObject&,pStream&,RetVal&
Parameters MemPointer&,Size&
GDIPlus starten
Dim gdpsi#,GdiplusStartupInput
gdpsi#.GdiplusVersion& = 1
gdpsi#.DebugEventCallback& = 0
gdpsi#.SuppressBackgroundThread& = 0
gdpsi#.SuppressExternalCodecs& = 0
GdiplusStartup(ADDR(gdiplusToken&),gdpsi#,0)
Dispose gdpsi#
Speicher bereitstellen
Var m_hBuffer& = GlobalAlloc(2,Size&)
Var pBuffer& = GlobalLock(m_hBuffer&)
RtlMoveMemory(pBuffer&,MemPointer&,Size&)
GlobalUnlock(m_hBuffer&)
Stream erzeugen
CreateStreamOnHGlobal(m_hBuffer&,1,Addr(pStream&))
GdipCreateBitmapFromStream(pStream&,Addr(ImageObject&))
hBitmap erzeugen
GdipCreateHBITMAPFromBitmap(ImageObject&,Addr(RetVal&),0)
aufräumen
Var Command& = Long(pStream&,0)
call(Long(Command&,8),pStream&)IStream.Release
GlobalFree(m_hBuffer&)
GdipDisposeImage(ImageObject&)
GdipDeleteGraphics(GraphicObject&)
GdiplusShutdown(gdiplusToken&)
FreeDll GDIP&
FreeDll OLE&
FreeDll Kernel&
Return RetVal&
EndProc
*** Hier stehen die Bilddaten aus bmp direkt im Quellcode.
Erstellt am 21. Februar 2010 mit dem XProfan Datengenerator, (C) Frank Abbing
Datei: E:profanXDatengeneratoricon4.bmp (originale Dateigröße: 1334 Bytes)
Declare mem#
Dim mem#,1336
Clear mem#
Long mem#,0=87444802
Long mem#,8=70647808,2621440,1048576,1048576,65536,8,16777216
Long mem#,44=16777216
Long mem#,52=-617349120,-617283329,-634060545,-600571649,-600637185,1545142527,-600506244,-583728897,1545142527,-583794563,-96861953,-432537345,-517537537,-264765185,-567017217,-130416385,-735444737,2082734335,2099445904
Long mem#,128=1533280402,-449380262,1478230271,-231210905,-971570945,-904593153,-971636481,-550174465,-550108929,-298319617,-566886145,1853423871,-382271382,1533083903,-585695137,-1190199041,-482934535,890568959,-499711937
Long mem#,204=1782513919,1617625218,-516489122,-197525249,-533200641,1566376191,1882980448,1899692172,1966538895,-600768363,1364721919,-1474887602,-1005256476,-415891202,-130481921,-853278465,-551288577,1092223231,-1558773674
Long mem#,280=-1491861280,-2025979675,-534183766,1396703487,1545076828,1819672702,-399048596,-500891393,1578762495,1075314814,1262420043,1634140244,-466288542,1920925951,-1474887569,705954021,-921370575,-650837761,-667614977
Long mem#,356=-482868993,1562050815,-348716931,-718601985,-365494017,-466222849,-214368001,-1875246849,-466091852,1664811263,-382205834,1948385535,-365363065,-786038529,-583663361,-483000065,-1305673473,-706477877,-1407647534
Long mem#,432=-499777302,-516554497,-925433601,1904017605,-113639311,-874970881,1259995335,739508310,1276772402,-466812838,2084831487,-499646315,101449983,151912454,403701768,1882849305,-398983030,-1858469633,-1642659658
Long mem#,508=-331874087,-672792321,-247922476,1545404671,-2092826502,-1592262494,1713373404,1732378757,1648754813,524404,1110638592,-449314740,1545208063,-432603012,-1758199553,1431699648,-752353191,-921435905,1429471487
Long mem#,584=-667811741,1482555647,1914765401,-1171390333,470941907,-550043617,-954859265,-453836545,225
Long mem#,1076=1012727808,84229453,134744069,1967226373,579105603,50594863,151852558,67567872,1752726585,235471643,856786757,704708870,405485445,50331744,1863673183,1783300609,-2138274210,198459,1351113842,1331298818,-2121495506
Long mem#,1160=67132233,879174755,1196163402,-1936946128,102370416,172115978,756030722,-1936946036,122782496,258370857,321999878,-1936946036,588010380,227109966,-1943240155,-1936946036,529220748,476806015,-1943586805,-1936946036
Long mem#,1240=1077578892,1477597053,-1936972199,-1936946036,389975180,343167551,-1936974217,-1936946036,1988922508,891849270,-1936946055,-1936946036,1653378188,1896568370,-1936946106,-1936946036,-1936946036,2048467305,-1936946036
Long mem#,1316=-1936946036,-1936946036,1683320417,-1936946036,35980
Declare hBild&
hBild& = CatchBmp(mem#)
Dispose mem#
Erstellt am 21. Februar 2010 mit dem XProfan Datengenerator, (C) Frank Abbing
Datei: E:profanXDatengeneratoricon4.png (originale Dateigröße: 1049 Bytes)
Dim mem#,1052
Clear mem#
Long mem#,0=1196314761,169478669,218103808,1380206665,268435456,268435456,776,254617600,50331731,1414287360,886832965,-13247489,-587254310,870121268,-15115140,-570477092,425491765,-13312513,-419480838,669122360,-13045505
Long mem#,84=-117492514,718602042,-1843102576,1532633981,937820004,-14919577,-956352270,365625111,-15284481,-536922657,955186998,1781980927,-369133202,1633378103,-115876353,-469823559,355811127,-2110266625,1616789354,937557867
Long mem#,164=-12913409,1566587104,1014008925,-1791266417,-587253899,1481723441,-32003868,-402713148,972619574,-14365185,1096164575,396615706,-1441486875,-520143225,1079204905,1813535870,-385911188,635633463,1260019326,1263802432
Long mem#,244=1734435391,1865803007,-1461354638,338309399,-15349249,-654363175,954466101,-14983811,-704694293,938147627,-13179649,-1867236877,954531642,-12885130,1955018985,971702050,-14233089,-469813539,766692150,-354101806
Long mem#,324=-486598228,920780598,1909967045,-100696719,-640956614,840584022,1280971820,769982234,-12288875,101071074,235472908,-1978656743,-385926544,982627896,-15229223,-673957652,972160998,-1575134086,-1579400573,543589656
Long mem#,404=1950508925,18018,859982856,2084103679,-419489188,882360375,-11119271,-906024749,878011156,1496504575,1921211992,783995681,-15590369,-939575329,-203103978
Long mem#,808=1181556736,215,1094994388,1671198804,-998047256,135581884,1698824587,559303210,-2061949941,565843825,1972999177,576100457,-305861628,-901494141,1443029221,1122088206,812290321,-110192895,426568442,-1468724370
Long mem#,888=-1299238848,-1356378529,1141805930,-1875271360,-1925762211,1355034015,-1068487656,-439958237,616940769,302751787,1720513640,1230391648,-194842313,167786353,867391540,1959072819,1160851460,821423097,807684968
Long mem#,964=-1480118224,842262154,-1245354119,1214534705,-1175293133,-1290138698,-1251331535,682898330,816886761,1928432115,-1280167886,-1003432360,-1294272294,1886565042,970371184,51853974,1421583616,334163600,79,1313163520
Long mem#,1044=1614982724,130
Bitte nicht vergessen, die Variable mem# zum Programmende wieder freizugeben (Dispose).
Declare hBild1&
hBild1& = CatchImage(mem#,sizeof(mem#))
Dispose mem#
*** Bild anzeigen
cls
DrawPic hBild&, 250,180, 1
DrawPic hBild1&, 250,220, 1
while 1
waitinput
Case %key=2:Break
Endwhile
*** Bild freigeben
DeleteObject hBild&
DeleteObject hBild1&
END
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 02/22/10 ▲ |
| |
| | Thomas Freier | thanks Andreas, trouble from of my visibility optimal resolved. so must then not first one Image created go, the subsequently again deleted becomes. too catchBmp is then not any more necessary. |
| | | Gruß Thomas Windows XP SP2, XProfan X2 | 02/22/10 ▲ |
| |
| | Andreas Miethe
| mind but, that The GDIPlus.dll first ex XP one component of Windosw is. with older Systemen must (and may) The Dll included go !! |
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 02/22/10 ▲ |
| |
| | Frank Abbing | Perhaps times the Clipboard-Variante try, if pre-XP his should. |
| | | | |
| | | Have too another Variant for small Images: CompileMarkSeparationcls
var hPic&=createHPic.attention_png()
drawPic hPic&,100,10;0
drawPic hPic&,100,50;0
waitinput
end
proc createHPic.attention_png
var hPic&=create("hNewPic",16,16,0)
var data$=decode64("8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEA18jFADpwigA7Y3YA2cvHAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAER8lQAX3f8AFsb/AEZidADz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAH1xcQAVxP4AOOn/ADjm/wAXntkAf3JvAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QBCg6IAJN//ADff/wA34f8AJM3/AEJnfQDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QB2bGwAF8b/ADfo/wA58/8AOfH/ADfl/wAYodwAeW5qAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEAPoeqACXi/wA45f8AInSHACN9kgA56v8AJtH/AD9qggDz5OEA8+ThAPPk4QDz5OEA8+ThAPPk4QDz5OEAZ2FiABbH/wA36f8AN+b/AAgAAAAMBgYAOO7/ADjm/wAXo+AAa2BeAPPk4QDz5OEA8+ThAPPk4QDz5OEA8+ThADqQtAAn4f8AN+P/ADfr/wAOCQgAEhwfADjw/wA34v8AKNP/ADxwjADz5OEA8+ThAPPk4QDz5OEA8+ThAGFbXwAUyf8ANuT/ADXd/wA69P8AEBgZABQsMgA6+P8ANdz/ADjk/wAXqOQAZFtaAPPk4QDz5OEA8+ThAPPk4QA6kbYAJ+H/ADXf/wA13P8AOvr/ABQqMQAYQEsAOvr/ADXa/wA23v8AKtT/ADtxjwDz5OEA8+ThAPPk4QBWVVkAFcn/ADbj/wA02/8AM9z/ADr5/wAVNT8AGkxaADn4/wA12f8ANdv/ADjj/wAXqOUAWFFOAPPk4QDz5OEANJfAACng/wA13f8ANNz/ADTb/wA47P8ALbLLAC660wA36v8ANdr/ADXa/wA23f8AK9X/ADd1lQDz5OEAXV1gABXK/wA24f8ANNv/ADTb/wA03P8ANuL/ABpLVgAcWGcAOOj/ADXb/wA12v8ANdj/ADji/wAZrOoAXlhZACBmhQAt5P8ANt//ADTc/wA03f8ANN7/ADXk/wAhcoMAJHyQADbn/wA13P8ANdv/ADXb/wA44P8AMtj/ABpBVgA0VWMAD7n5ADHc/wAz3P8AM9z/ADTc/wA03v8AOPL/ADjw/wA03f8ANNv/ADXb/wA13f8AM9z/ABSn5QAzQkwA5NXSAEBTXAAbXX0AGFx+ABlcfAAZXHwAGVx8ABlcfQAZXH0AGVx9ABlcfAAaXHwAGl5+AB1cegA/S1QA5tfUAA==")
external("gdi32.dll","SetBitmapBits",hPic&,1024,addr(data$))
return hPic&
CompileMarkSeparationcls
var fle$=loadFile$("Beliebige Bilddatei","*.*")//File The in function konvertiert go should
casenot fileExists(fle$) : end 1
var fnam$=translate $(substr$(fle$,len(fle$,"\"),"\"),".","_")
var hPic&=create("HPIC",-1,fle$)
var x&=%bmpx
var y&=%bmpy
var c&=x&*y&*4
var m&=external("kernel32.dll","GlobalAlloc",64,c&)//64=gPTR
external("gdi32.dll","GetBitmapBits",hPic&,c&,m&)
clearClip
putClip "proc createHPic."+fnam$+"
var hPic&=create(qhNewPicq,"+st$(x&)+","+st$(y&)+",0)
var data$=decode64(q"+encode64(char$(m&,0,c&))+"q)
external(qgdi32.dllq,qSetBitmapBitsq,hPic&,"+st$(c&)+",addr(data$))
return hPic&
endproc
"
end
|
| | | | |
|
AnswerThemeninformationenthis Topic has 4 subscriber: |