ターミナル上に画像を表示するプログラム

ターミナル上に、コマンドライン引数として指定された画像ファイルを表示するプログラムを作りました。しかし、元の画像を90度左に回転させた画像が表示されてしまいます。for文を変えてみたりなどしましたが、直りません。どこを直せば元の画像と同じ向きで表示されるのでしょうか。

#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
#include<iostream>

int main(int argc, char argv[])
{
if(argc==2){
char const
filename=argv[1];
int width,height,num_channels;
unsigned char* img;
img=stbi_load(filename,&width,&height,&num_channels,0);
if(!img){
std::cerr<<"Error: "<<filename<<"\n";
}else{
for(int x=0;x<width;x++){
for(int y=height-1;y>=0;y--){
int r=img[(x+y*width)num_channels+0];
int g=img[(x+y
width)num_channels+1];
int b=img[(x+y
width)*num_channels+2];

std::printf(" \033[48;2;%d;%d;%dm",r,g,b); } std::cout<<"\n"; } } stbi_image_free(img); }else if(argc>=3){ std::cout<<"./kadai09a:file"; }else{ std::cout << "sample.png"; }

}

コメントを投稿

0 コメント