Fix coords order

This commit is contained in:
Svetlana Kulikova
2025-10-08 11:46:53 +03:00
parent 2f965fd578
commit cebd668fe9
2 changed files with 6 additions and 12 deletions

View File

@ -774,16 +774,10 @@ bool CPdfReader::RedactPage(int _nPageIndex, double* arrRedactBox, int nLengthX8
CPdfRedact* pRedact = new CPdfRedact();
pRedact->m_nPageIndex = _nPageIndex;
for (int i = 0; i < nLengthX8; i += 8)
for (int i = 0; i < nLengthX8 * 8; i += 2)
{
pRedact->m_arrRedactBox.push_back(arrRedactBox[i + 0] + cropBox->x1);
pRedact->m_arrRedactBox.push_back(cropBox->y2 - arrRedactBox[i + 1]);
pRedact->m_arrRedactBox.push_back(arrRedactBox[i + 2] + cropBox->x1);
pRedact->m_arrRedactBox.push_back(cropBox->y2 - arrRedactBox[i + 3]);
pRedact->m_arrRedactBox.push_back(arrRedactBox[i + 4] + cropBox->x1);
pRedact->m_arrRedactBox.push_back(cropBox->y2 - arrRedactBox[i + 5]);
pRedact->m_arrRedactBox.push_back(arrRedactBox[i + 6] + cropBox->x1);
pRedact->m_arrRedactBox.push_back(cropBox->y2 - arrRedactBox[i + 7]);
}
pRedact->m_pChanges = pChanges;
pRedact->m_nChangeLength = nLength;
@ -849,8 +843,8 @@ void CPdfReader::DrawPageOnRenderer(IRenderer* pRenderer, int _nPageIndex, bool*
pRenderer->put_BrushColor1(lColor);
pRenderer->PathCommandMoveTo(PdfReader::PDFCoordsToMM(m_vRedact[i]->m_arrRedactBox[j + 0] - cropBox->x1), PdfReader::PDFCoordsToMM(cropBox->y2 - m_vRedact[i]->m_arrRedactBox[j + 1]));
pRenderer->PathCommandLineTo(PdfReader::PDFCoordsToMM(m_vRedact[i]->m_arrRedactBox[j + 2] - cropBox->x1), PdfReader::PDFCoordsToMM(cropBox->y2 - m_vRedact[i]->m_arrRedactBox[j + 3]));
pRenderer->PathCommandLineTo(PdfReader::PDFCoordsToMM(m_vRedact[i]->m_arrRedactBox[j + 4] - cropBox->x1), PdfReader::PDFCoordsToMM(cropBox->y2 - m_vRedact[i]->m_arrRedactBox[j + 5]));
pRenderer->PathCommandLineTo(PdfReader::PDFCoordsToMM(m_vRedact[i]->m_arrRedactBox[j + 6] - cropBox->x1), PdfReader::PDFCoordsToMM(cropBox->y2 - m_vRedact[i]->m_arrRedactBox[j + 7]));
pRenderer->PathCommandLineTo(PdfReader::PDFCoordsToMM(m_vRedact[i]->m_arrRedactBox[j + 4] - cropBox->x1), PdfReader::PDFCoordsToMM(cropBox->y2 - m_vRedact[i]->m_arrRedactBox[j + 5]));
pRenderer->PathCommandClose();
pRenderer->DrawPath(c_nWindingFillMode);
pRenderer->PathCommandEnd();

View File

@ -198,10 +198,10 @@ bool GlobalParamsAdaptor::InRedact(double dX, double dY)
double y1 = m_arrRedactBox[i + 1];
double x2 = m_arrRedactBox[i + 2];
double y2 = m_arrRedactBox[i + 3];
double x3 = m_arrRedactBox[i + 4];
double y3 = m_arrRedactBox[i + 5];
double x4 = m_arrRedactBox[i + 6];
double y4 = m_arrRedactBox[i + 7];
double x3 = m_arrRedactBox[i + 6];
double y3 = m_arrRedactBox[i + 7];
double x4 = m_arrRedactBox[i + 4];
double y4 = m_arrRedactBox[i + 5];
// Проверяем знаки векторных произведений для всех сторон
double cross1 = crossProduct(x1, y1, x2, y2, dX, dY);