void PngImageExt::FindNonOpaqueRect(Rect2i & rect) { rect = Rect2i(0, 0, GetWidth(), GetHeight()); for (uint32 y = 0; y < GetHeight(); ++y) if (IsHorzLineOpaque(y)) { rect.y++; rect.dy--; }else break; for (uint32 x = 0; x < GetWidth(); ++x) if (IsVertLineOpaque(x)) { rect.x++; rect.dx--; }else break; if ((rect.dx == 0) && (rect.dy == 0)) { rect.x = rect.y = 0; rect.dx = rect.dy = 1; return; } for (int32 y = GetHeight() - 1; y >= 0; --y) if (IsHorzLineOpaque(y))rect.dy--; else break; for (int32 x = GetWidth() - 1; x >= 0; --x) if (IsVertLineOpaque(x))rect.dx--; else break; }
void PngImageExt::FindNonOpaqueRect(Rect2i & rect) { rect = Rect2i(0, 0, width, height); for (int y = 0; y < height; ++y) if (IsHorzLineOpaque(y)) { rect.y++; rect.dy--; }else break; for (int x = 0; x < width; ++x) if (IsVertLineOpaque(x)) { rect.x++; rect.dx--; }else break; if ((rect.dx == 0) && (rect.dy == 0)) { rect.x = rect.y = 0; rect.dx = rect.dy = 1; return; } for (int y = height - 1; y >= 0; --y) if (IsHorzLineOpaque(y))rect.dy--; else break; for (int x = width - 1; x >= 0; --x) if (IsVertLineOpaque(x))rect.dx--; else break; }