日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#合并文件夹图片列表 自定义排版顺序

發布時間:2023/12/9 C# 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#合并文件夹图片列表 自定义排版顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本次程序編寫主要為了將pdf word等文檔轉換為圖片后設置不同的打印排版

前提 目標文件夾中的圖片高寬都是一致的

/// <summary>/// 合并圖片/// </summary>/// <param name="savedictory">文件保存目錄</param>/// <param name="singlePageNumber">單頁排版</param>/// <param name="path">文件列表</param>/// public static void MergedImage(string[] path, SinglePageNumber singlePageNumber,string savedictory){//獲取目錄路徑列表var i = path.Length % (int)singlePageNumber > 0 ? (path.Length / (int)singlePageNumber + 1) : path.Length / (int)singlePageNumber;for (int s = 0; s < i; s++){List<Bitmap> bitmapList = new List<Bitmap>();List<string> imgPathTake = path.Skip((s - 1) * (int)singlePageNumber).Take((int)singlePageNumber).ToList();foreach (var pathItem in imgPathTake)bitmapList.Add(new Bitmap(pathItem));//2=1x2 4=2x2 6=2x3 9=3x3 16=4x4Bitmap map = null;switch (singlePageNumber){case SinglePageNumber.two:map = mergeImage(2, 1, bitmapList);break;case SinglePageNumber.four:map = mergeImage(2, 2, bitmapList);break;case SinglePageNumber.six:map = mergeImage(3, 2, bitmapList);break;case SinglePageNumber.nine:map = mergeImage(3, 3, bitmapList);break;case SinglePageNumber.Sixteen:map = mergeImage(4, 4, bitmapList);break;default:break;}map.Save(savedictory + "\\" + s+".png");}}/// <summary>/// 合并圖片文件 傳入的圖片寬高要一致/// </summary>/// <param name="wi">一排有幾張</param>/// <param name="hi">一列有幾張</param>/// <param name="mapList"></param>public static Bitmap mergeImage(int wi, int hi, List<Bitmap> mapList){int width = mapList.First().Width;int height = mapList.First().Height;Bitmap bitmap = new Bitmap(width * wi, height * hi);//x表示圖片在第幾行y表示圖片在第幾列 int mapIndex = 0;for (int y = 1; y <= hi; y++){for (int x = 1; x <= wi; x++){if (mapIndex == mapList.Count ){foreach (var item in mapList)item.Dispose();return bitmap;}var map = mapList[mapIndex];mapIndex++;for (int w = 1; w <= width; w++)for (int h = 1; h <= height; h++){var color = map.GetPixel(w - 1, h - 1);bitmap.SetPixel(((x-1)*width)+w - 1, ((y - 1) * height) + h - 1, color);}}}foreach (var item in mapList)item.Dispose();return bitmap;} /// <summary>/// 每版打印幾頁 單頁的不用處理/// </summary>public enum SinglePageNumber{two = 2,four = 4,six = 6,nine = 9,Sixteen = 16,}

  

  

設置圖片排版為2*3的效果

string dictory = @"D:\test\testpdf2convert\";string[] path = System.IO.Directory.GetFiles(dictory);ImagePrintHp.MergedImage(path, SinglePageNumber.six, dictory);

  效果

2*2效果

?

轉載于:https://www.cnblogs.com/ProDoctor/p/7691575.html

總結

以上是生活随笔為你收集整理的C#合并文件夹图片列表 自定义排版顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。