#include "l_bitmap.h"
L_LTDOCWRT_API L_INT EXT_FUNCTION L_DocWriterUpdateMetaFileResolution(hEmfSrc、xResolution、yResolution、phEmfDest)
L_HENHMETAFILE hEmfSrc; |
/* ソースEMFへのハンドル*/ |
L_UINT xResolution; |
/* 新しいX解像度*/ |
L_UINT yResolution; |
/* 新しいY解像度*/ |
L_VOID * pDocOptions; |
/* ドキュメントオプション構造体へのポインター*/ |
L_HENHMETAFILE * phEmfDest; |
/* 更新されるアドレス変数の世代*/ |
既存の拡張メタファイル(EMF)の解像度を変更します。
パラメーター |
説明 |
hEmfSrc |
更新される拡張メタファイル(EMF)のハンドル。 |
xResolution |
新しいX解像度値。0の手段は、この解像度を変更しません。 |
yResolution |
新しいY解像度値。0の手段は、この解像度を変更しません。 |
phEmfDest |
変更されたEMFとともに更新される拡張メタファイル(EMF)ハンドルのアドレス。 |
戻り値
SUCCESS |
関数は成功しました。 |
<1 |
エラーが発生しました。リターンコードを参照してください |
コメント
xResolutionのための0の値またはyResolution手段は、この解像度値を変更しません。これは、他の解像度に影響を及ぼすことなく水平または拡張メタファイル(EMF)ハンドルの垂直解像度を変更するだけのことができます。
xResolutionかyResolutionが-1と等しいならば、オリジナルのEMFハンドルのためのアスペクト比は維持管理されます、そして、どちらのxResolutionまたはyResolutionのための正の値でも変更されたEMFハンドルのための解像度(DPI)値として使われます。xResolutionとyResolution両方がゼロ未満であるはずがないことに注意すべきです。
必須のDLLとライブラリ
LtDocWrt_u.dll、LtDocWrt_x.dll |
Win32 x 64
参照
関数: |
|
トピック: |
|
|
サンプル
このサンプルは、MS Wordドキュメントforamt(doc)に、リードする文書形式(ltd)を変換します
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName static void ShowMetaFileDimension(HENHMETAFILE hEmf) { // Get the metafile header L_UINT uSize = GetEnhMetaFileHeader(hEmf, 0, NULL); L_VOID* ptr = malloc(uSize); ENHMETAHEADER* pHeader = reinterpret_cast<ENHMETAHEADER*>(ptr); L_TCHAR szBuffer[_MAX_PATH]; wsprintf(szBuffer, TEXT("Size: %d by %d pixels\n"), pHeader->rclBounds.right - pHeader->rclBounds.left, pHeader->rclBounds.bottom - pHeader->rclBounds.top); MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK); // The resolution is saved in 0.01 mm units, convert to dots/inch L_INT xResolution = (L_INT)((L_DOUBLE)pHeader->szlDevice.cx * 25.4 / (L_DOUBLE)pHeader->szlMillimeters.cx + 0.5); L_INT yResolution = (L_INT)((L_DOUBLE)pHeader->szlDevice.cy * 25.4 / (L_DOUBLE)pHeader->szlMillimeters.cy + 0.5); wsprintf(szBuffer, TEXT("Resolution: %d by %d pixels/inch\n"), xResolution, yResolution); MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK); free(ptr); } L_LTDOCWRTTEX_API L_INT L_DocWriterUpdateMetaFileResolutionExample(L_VOID) { // Load the original meta file L_HENHMETAFILE hEmf = GetEnhMetaFile(MAKE_IMAGE_PATH(TEXT("Ocr1.emf"))); // Show the dimension L_TCHAR szBuffer[_MAX_PATH]; wsprintf(szBuffer,TEXT("Original EMF dimension:\n")); MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK); ShowMetaFileDimension(hEmf); // Change the resolution to be 200 by 200 dots/inch L_HENHMETAFILE hEmfDest = NULL; L_INT nRet = L_DocWriterUpdateMetaFileResolution(hEmf, 600, 600, &hEmfDest); // No need for the original handle anymore DeleteEnhMetaFile(hEmf); if(nRet == SUCCESS) { wsprintf(szBuffer,TEXT("New EMF dimension:\n")); MessageBox(NULL, szBuffer, TEXT("Meta Information"), MB_OK); ShowMetaFileDimension(hEmfDest); DeleteEnhMetaFile(hEmfDest); } return SUCCESS; }