mirror of
https://github.com/Dadido3/Scanyonero.git
synced 2025-06-06 17:30:00 +00:00
- Rename to Scanyonero - Add FTP server that ingests TIFF, PNG, JPEG or PDF files - Add web interface to check and modify ingested files - Rework how ocrmypdf is invoked Basics are working, but the program is not in a usable state.
53 lines
1.7 KiB
Go
53 lines
1.7 KiB
Go
package unit
|
|
|
|
// PageDimensions contains the page size and margins of a scanned document page.
|
|
type PageDimensions[T UnitConstraint] struct {
|
|
MediumSize Vec2[T] `json:"mediumSize"` // The size of the page or medium.
|
|
ScanSize Rectangle[T] `json:"scanSize"` // The size of the scanned area or image.
|
|
}
|
|
|
|
// NewPageDimensionsFromDensity returns page dimensions for the given resolution resX and resY, and the respective densities.
|
|
//
|
|
// The resulting PageDimensions will have equal MediumSize and ScanSize (No margin).
|
|
// The correct margin or MediumSize can be added later on.
|
|
//
|
|
// In case any density is nil, this will return zero value PageDimensions.
|
|
func NewPageDimensionsFromDensity(resX, resY int, densityX, densityY Density) PageDimensions[Millimeter] {
|
|
if densityX == nil || densityY == nil {
|
|
return PageDimensions[Millimeter]{}
|
|
}
|
|
|
|
size := Vec2[Millimeter]{
|
|
X: Millimeter(resX) / Millimeter(densityX.PerMillimeter()),
|
|
Y: Millimeter(resY) / Millimeter(densityY.PerMillimeter()),
|
|
}
|
|
|
|
return PageDimensions[Millimeter]{
|
|
MediumSize: size,
|
|
ScanSize: Rectangle[Millimeter]{
|
|
Size: size,
|
|
},
|
|
}
|
|
}
|
|
|
|
// NewPageDimensionsFromLengths returns page dimensions for the given lengths.
|
|
//
|
|
// The resulting PageDimensions will have equal MediumSize and ScanSize (No margin).
|
|
// The correct margin or MediumSize can be added later on.
|
|
//
|
|
// In case any length is nil, this will return zero value PageDimensions.
|
|
func NewPageDimensionsFromLengths(x, y Length) PageDimensions[Millimeter] {
|
|
if x == nil || y == nil {
|
|
return PageDimensions[Millimeter]{}
|
|
}
|
|
|
|
size := Vec2[Millimeter]{X: x.Millimeters(), Y: y.Millimeters()}
|
|
|
|
return PageDimensions[Millimeter]{
|
|
MediumSize: size,
|
|
ScanSize: Rectangle[Millimeter]{
|
|
Size: size,
|
|
},
|
|
}
|
|
}
|