@@ -35,16 +35,11 @@ func PrintImageFile(imageFileName string) error {
3535 return err
3636 }
3737
38- imageConfig , err := DecodeImageConfig (imageData )
39- if err != nil {
40- return err
41- }
42-
4338 img , err := DecodeImage (imageData )
4439 if err != nil {
4540 return err
4641 }
47- return PrintImage (img , & imageConfig , imageFileName , imageSize )
42+ return PrintImage (img , imageFileName , imageSize )
4843}
4944
5045func PrintImageURL (imageURL string ) error {
@@ -63,43 +58,31 @@ func PrintImageURL(imageURL string) error {
6358 return err
6459 }
6560
66- imageConfig , err := DecodeImageConfig (imageData )
67- if err != nil {
68- fmt .Println ("Error decoding image config:" , err )
69- return err
70- }
71-
7261 img , err := DecodeImage (imageData )
7362 if err != nil {
7463 return err
7564 }
76- return PrintImage (img , & imageConfig , imageURL , resp .ContentLength )
65+ return PrintImage (img , imageURL , resp .ContentLength )
7766}
7867
79- func PrintImage (img * image.Image , imageConfig * image. Config , filename string , imageSize int64 ) error {
80- var img2 image.Image
68+ func PrintImage (img * image.Image , filename string , imageSize int64 ) error {
69+ var img2 image.Image = * img
8170 sixelCapable , _ := rasterm .IsSixelCapable ()
8271
8372 _ , _ , pw , ph := TermSize () // Get terminal height and width in pixels
73+ size , resizeOption := resizeConstraints (img2 .Bounds (), int (pw ), int (ph ))
8474
85- kittyOpts := rasterm.KittyImgOpts {SrcWidth : uint32 (pw ), SrcHeight : uint32 (ph )}
86-
87- if pw < uint16 (imageConfig .Width ) {
88- kittyOpts .SrcWidth = uint32 (pw )
89- }
90- if ph < uint16 (imageConfig .Height ) {
91- kittyOpts .SrcHeight = uint32 (ph )
75+ switch resizeOption {
76+ case 'x' :
77+ img2 = resize .Resize (uint (size ), 0 , img2 , resize .NearestNeighbor )
78+ case 'y' :
79+ img2 = resize .Resize (0 , uint (size ), img2 , resize .NearestNeighbor )
9280 }
9381
94- if pw < uint16 (imageConfig .Width ) {
95- img2 = resize .Resize (uint (pw ), 0 , * img , resize .NearestNeighbor )
96- }
82+ newWidth := img2 .Bounds ().Max .X
83+ newHeight := img2 .Bounds ().Max .Y
9784
98- img2Height := img2 .Bounds ().Max .Y
99-
100- if ph < uint16 (img2Height ) {
101- img2 = resize .Resize (0 , uint (ph ), img2 , resize .NearestNeighbor )
102- }
85+ kittyOpts := rasterm.KittyImgOpts {SrcWidth : uint32 (newWidth ), SrcHeight : uint32 (newHeight )}
10386
10487 switch {
10588 case rasterm .IsKittyCapable ():
@@ -126,15 +109,6 @@ func PrintImage(img *image.Image, imageConfig *image.Config, filename string, im
126109 return nil
127110}
128111
129- func DecodeImageConfig (imageData []byte ) (imageConfig image.Config , err error ) {
130- imageDataReader := bytes .NewReader (imageData )
131- imageConfig , _ , err = image .DecodeConfig (imageDataReader )
132- if err != nil {
133- return image.Config {}, err
134- }
135- return imageConfig , nil
136- }
137-
138112func DecodeImage (imageData []byte ) (* image.Image , error ) {
139113 imageDataReader := bytes .NewReader (imageData )
140114 image , _ , err := image .Decode (imageDataReader )
0 commit comments