공부/C#

직사각형 배경에 정사각형 이미지 넣기

딸기버블티 2022. 2. 24. 19:39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public bool ResizeImage(string url)
{
    public byte[] FileBytes;
    Scraper scraper = new Scraper();
    scraper.AllowAutoRedirect = true;
    scraper.Referer = "";
    scraper.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36";
    scraper.Go(url);
 
    Image image;
    using (var ms = new MemoryStream())
    {
        image = Image.FromStream(scraper.Stream);
        image = (Image)new Bitmap(image, new Size(960960));
        string Name = @"c:\temp\";
        string pageFilePath = Path.Combine(Name, "tes11t" + ".jpg");
        Bitmap bmp = new Bitmap(960, 1280);
        using (Graphics grahp = Graphics.FromImage(bmp))
        {
            grahp.Clear(Color.White);
            grahp.DrawImage(image, new Rectangle(0, 160, 960, 960));
            Name = @"c:\temp\";
            pageFilePath = Path.Combine(Name, "test" + ".jpg");
            bmp.Save(pageFilePath, ImageFormat.Jpeg);
            image = (Image)bmp;
            image.Save(ms, ImageFormat.Jpeg);
        }
        FileBytes = ms.ToArray();
    }
    return true;
 
}
cs

 

url : 이미지 경로

Scraper.Go(url) : 이미지 로드하기위해 크롤링

13번째줄 : 크롤링한 이미지를 스트림으로 읽어 이미지로 변환

14번째줄 : 2500 X 2500인 이미지를 960 X 960으로 변환

20번째줄 : 배경을 흰색으로 칠함

21번째줄 : 960 X 1280 인 흰색 직사각형 배경에 위에서 변환한 이미지를 삽입

0,160 좌표에부터 그리기. 이미지 사이즈는 960 X 960

24번째줄 : 컴퓨터에 해당 이미지 저장하기(확인용)

26번째줄 : 메모리스트림을 이미지로 저장

28번째줄 : 메모리스트림을 버퍼로 변환