modify api to eventually allow choosing the image render mode
This commit is contained in:
		
							parent
							
								
									8893ca0c33
								
							
						
					
					
						commit
						871712388b
					
				| 
						 | 
					@ -41,7 +41,8 @@ impl Element {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn into_image(self) -> Result<Image, CowError> {
 | 
					    fn into_image(self) -> Result<Image, CowError> {
 | 
				
			||||||
        match self.media {
 | 
					        match self.media {
 | 
				
			||||||
            Media::Image(image) => Ok(Image::from_bytes_inferred(*image)?.resized(
 | 
					            // TODO: allow changing treatment of image
 | 
				
			||||||
 | 
					            Media::Image((image, _)) => Ok(Image::from_bytes_inferred(*image)?.resized(
 | 
				
			||||||
                self.dimensions.0,
 | 
					                self.dimensions.0,
 | 
				
			||||||
                self.dimensions.1,
 | 
					                self.dimensions.1,
 | 
				
			||||||
                ResizeAlgorithm::Bicubic,
 | 
					                ResizeAlgorithm::Bicubic,
 | 
				
			||||||
| 
						 | 
					@ -70,7 +71,7 @@ impl Element {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub enum Media {
 | 
					pub enum Media {
 | 
				
			||||||
    Text(Text),
 | 
					    Text(Text),
 | 
				
			||||||
    Image(Box<Vec<u8>>),
 | 
					    Image((Box<Vec<u8>>, ImageMode)),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct Text {
 | 
					pub struct Text {
 | 
				
			||||||
| 
						 | 
					@ -80,6 +81,12 @@ pub struct Text {
 | 
				
			||||||
    fill: (u8, u8, u8, u8),
 | 
					    fill: (u8, u8, u8, u8),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub enum ImageMode {
 | 
				
			||||||
 | 
					    Stretch,
 | 
				
			||||||
 | 
					    Fill,
 | 
				
			||||||
 | 
					    Crop,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl Text {
 | 
					impl Text {
 | 
				
			||||||
    pub fn new(text: String, font: Box<Vec<u8>>, size: f32, fill: (u8, u8, u8, u8)) -> Self {
 | 
					    pub fn new(text: String, font: Box<Vec<u8>>, size: f32, fill: (u8, u8, u8, u8)) -> Self {
 | 
				
			||||||
        Self {
 | 
					        Self {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,11 @@ fn test_overlay_text_and_image() {
 | 
				
			||||||
                (0, 0),
 | 
					                (0, 0),
 | 
				
			||||||
                (64, 64),
 | 
					                (64, 64),
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
            Element::new(Media::Image(superimpose), (400, 400), (800, 200)),
 | 
					            Element::new(
 | 
				
			||||||
 | 
					                Media::Image((superimpose, ImageMode::Stretch)),
 | 
				
			||||||
 | 
					                (400, 400),
 | 
				
			||||||
 | 
					                (800, 200),
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    .unwrap();
 | 
					    .unwrap();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue