(已解决)自订函数在打印文本的时候可以旋转角度,如何在打印图形的时候也旋转角度呢?
本帖最后由 scorpio1102 于 2013-6-21 03:44 编辑_PrintText($hDll, $sText, $ix = -1, $iy = -1, $iAngle = 0)
以上第5个参数可以控制角度
_PrintImage($hDll, $sImagePath, $TopX, $TopY, $wid, $ht)
以上函数不能控制旋转角度,请教老师傅有哪个函数能控制图形打印的时候旋转吗?
以下为老大写的代码貌似能旋转但是只想在打印的时候旋转,不想保存的图像也旋转.
说的简单点就是如何直接打印图像而不使用printimage函数提取已经保存的图像来打印.
Func _GDIPlus_ImageRotateToSave($sPicPath, $sNewName)
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sPicPath)
DllCall($ghGDIPDll, 'uint', 'GdipImageRotateFlip', 'hwnd', $hImage, 'int', 2)
_GDIPlus_ImageSaveToFile($hImage, $sNewName)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
EndFunc ;==>_GDIPlus_ImageRotateToSave
DllCall($ghGDIPDll, 'uint', 'GdipImageRotateFlip', 'hwnd', $hImage, 'int', 2) 如何控制旋转角度.此行貌似旋转了180度.
以下是打印函数:
Func _PrintImage($hDll, $sImagePath, $TopX, $TopY, $wid, $ht)
$vDllAns = DllCall($hDll, 'int', 'Image', 'str', $sImagePath, 'int', $TopX, 'int', $TopY, 'int', $wid, 'Int', $ht)
If @error = 0 Then Return $vDllAns
SetError(1)
Return -1
EndFunc
可不可以修改一下,之后打印旋转90度的图片.或者是其它方法.($simagepath可不可以改为图形对象变量)dllcall这玩意思到底怎么玩. 本帖最后由 scorpio1102 于 2013-6-3 17:37 编辑
旋转90度使用以下方法,(有空出边线勉强能用)
http://www.autoitx.com/forum.php?mod=viewthread&tid=36345&highlight=%B7%AD%D7%AA
直接打印的方法还是不知道怎么办,请老大们提供法宝函数. 本帖最后由 Ycxw2008 于 2013-6-3 20:50 编辑
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <ScreenCapture.au3>
_Main()
Func _Main()
Local $hGUI, $hBMP, $hBitmap, $hGraphic
; 捕获屏幕的左上角
$hBMP = _ScreenCapture_Capture("", 0, 0, 400, 300)
; 创建 GUI
$hGUI = GUICreate("GDI+",400,300,200)
GUISetState()
$hGUI2 = GUICreate("GDI+",400,300,600)
GUISetState()
; 初始化 GDI+ 库
_GDIPlus_Startup()
; 在 GUI 中描绘位图
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBMP)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
_GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
DllCall($ghGDIPDll, 'uint', 'GdipImageRotateFlip', 'hwnd', $hBitmap, 'int', 1);旋转的函数 具体的查下msdn
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI2)
_GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
; 清理资源
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_BitmapDispose($hBitmap)
_WinAPI_DeleteObject($hBMP)
; 关闭 GDI+ 库
_GDIPlus_Shutdown()
; 循环直到用户退出
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
本帖最后由 scorpio1102 于 2013-6-4 09:46 编辑
把1改成2就是90度了,旋转的两个方法算是明白了,但是打印函数_printimage的方法(想直接打印image object)有没办法,问题的初衷就是这个.使用的是坛子里找的的printMGv2.au3t和附带的printmg.dll
页:
[1]