public void Update(CoordEnvelope coordEnvelope) { _isNeedUpdateHeader = false; if (coordEnvelope != null) { _coordEnvelope = coordEnvelope.Clone(); _header.MinX = (float)_coordEnvelope.MinX; _header.MaxX = (float)_coordEnvelope.MaxX; _header.MinY = (float)_coordEnvelope.MinY; _header.MaxY = (float)_coordEnvelope.MaxY; if (_access == MemoryMappedFileAccess.ReadWrite) { //MemoryRasterHeader header = GetExtHeader<MemoryRasterHeader>(); SetExtHeader <MemoryRasterHeader>(_header); string hdr = HdrFile.GetHdrFileName(_fileName); if (File.Exists(hdr)) { File.Delete(hdr); } } else { _isNeedUpdateHeader = true; } } }
public void Render(object sender, IDrawArgs drawArgs) { if (_bitmap == null || _coordEnvelope == null) { return; } CoordEnvelope evp = _coordEnvelope.Clone(); if (_isGeoCoord) { (sender as ICanvas).CoordTransform.Geo2Prj(evp); } double x1 = evp.MinX; double y1 = evp.MinY; double x2 = evp.MaxX; double y2 = evp.MaxY; drawArgs.QuickTransformArgs.Transform(ref x1, ref y1); drawArgs.QuickTransformArgs.Transform(ref x2, ref y2); Graphics g = drawArgs.Graphics as Graphics; //g.DrawImage(_bitmap, // RectangleF.FromLTRB((float)Math.Min(x1, x2), (float)Math.Min(y1, y2), (float)Math.Max(x1, x2), (float)Math.Max(y1, y2))); g.DrawImage(_bitmap, new PointF[] { new PointF((float)x1, (float)y2), new PointF((float)x2, (float)y2), new PointF((float)x1, (float)y1) }, new RectangleF(0, 0, _bitmap.Width, _bitmap.Height), GraphicsUnit.Pixel, _ia); }