이미지 맵을 사용하고 차트를 동시에 캐시 할 수 있습니까? 캐싱을 사용하면 이미지 맵이 더 이상 생성되지 않습니다. 이미지 맵을 가져야하므로 값 위에 마우스를 올려 놓을 때 값이 표시됩니다. 그러나 CPU를 크게 줄이기 위해 차트를 캐싱 할 수 있기를 원합니다. 나는 어디서나이 정보를 찾을 수 없었고 pChart 포럼은 혼란 스럽다.pChart 2.0 이미지 맵과 캐싱이 동시에 나타 납니까?
0
A
답변
0
현재 버전 (2.1.3)에서는이 기능을 사용할 수 없습니다. 이미지 맵은 pChart가 실제로 이미지를 그릴 때만 생성됩니다. 즉 나중에 캐시에서 이미지를 가져올 때 이미지 맵을 사용할 수 없습니다.
주변을 둘러 보려면 이미지 맵을 직접 캐시 할 수 있습니다. 당신이이 라인을 따라 뭔가를 할 수 http://wiki.pchart.net/doc.imagemaps.fundamentals.html의 예를가는
//initialise the map
$myPicture->initialiseImageMap("ImageMapBarChart", IMAGE_MAP_STORAGE_FILE, "BarChart", "../tmp");
//draw the chart
$Settings = array("RecordImageMap" => TRUE);
$myPicture->drawBarChart($Settings);
//the image map is ready for you here
//so before you output the chart get the map with dumpImageMap() and copy it to YOUR OWN CACHE
$myPicture->dumpImageMap("ImageMapBarChart", IMAGE_MAP_STORAGE_FILE, "BarChart", "../tmp");
나는이 오래된 질문 알아요,하지만 난이 도움이되기를 바랍니다.
0
다음 코드를 사용하여이 작업을 수행 할 수있었습니다. 포럼의 형식 및 제한 사항에 대해 사과드립니다. tImp 파일을 삭제하지 않도록 pImage.class를 수정해야했기 때문에 캐시 된 이미지에 저장됩니다.
if ($myCache->isInCache($ChartHash)) {
/* Retrieve the image map */
if (isset($_GET["ImageMap"]) || isset($_POST["ImageMap"])) {
$StorageFolder = PCHART_PATH . "/cache/imageMap";
$UniqueID = "AreaChart".$ChartHash;
if (file_exists($StorageFolder."/".$UniqueID.".map")) {
$Handle = @fopen($StorageFolder."/".$UniqueID.".map", "r");
if ($Handle) { while (($Buffer = fgets($Handle, 4096)) !== false) { echo $Buffer; } }
fclose($Handle);
}
}
/* Output cached image */
$myCache->strokeFromCache($ChartHash,"pictures/drawAreaChart.".$ChartHash.".png");
}