返回列表 发帖

批量把txt文本里的内容做成图片

本帖最后由 xiaohutok1 于 2021-8-23 23:34 编辑

文本里行数都是30行左右,内容没有很多。 我要的效果和截个图差不多。 做成正方形的图片。
每个子文件夹里都有一个txt文本,弄成图片后放到各自的文件夹里就行,文件名就aa.jpg
自己一个一个去弄成图片好麻烦

有偿 150

回复 2# zaqmlp


    哥 ,能不能帮我稍微改下。  其他都一样,添加一个指定文件名的txt处理,其他的txt不处理。 谢谢

TOP

回复 2# zaqmlp


    查收

TOP

<# :
cls&echo off
rem txt及bat的编码存为ANSI/GB2312
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
pause
exit
#>
$codes=@'
using System;
using System.IO;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
public static class TextToImage{
    public static void Save(string textFile,string imageFile){
        System.Drawing.Font drawFont=new System.Drawing.Font("宋体", 14);
        System.Drawing.Bitmap image=new System.Drawing.Bitmap(1, 1);
        System.Drawing.Graphics g=System.Drawing.Graphics.FromImage(image);
        String text=System.IO.File.ReadAllText(textFile, System.Text.Encoding.GetEncoding("GB2312"));
        System.Drawing.SizeF sf=g.MeasureString(text, drawFont, 1024);
        image=new System.Drawing.Bitmap(image, 1024, 1024);
        g=System.Drawing.Graphics.FromImage(image);
        g.Clear(System.Drawing.Color.White);
        g.TextRenderingHint=System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
        g.DrawString(text, drawFont, System.Drawing.Brushes.Black, new System.Drawing.RectangleF(new System.Drawing.PointF(0, 0), sf));
        image.Save(imageFile, System.Drawing.Imaging.ImageFormat.Jpeg);
        g.Dispose();
        image.Dispose();
    }
}
'@;
Add-Type -TypeDefinition $codes -ReferencedAssemblies 'System.Drawing';
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$folders=@(dir -liter $path|?{$_ -is [System.IO.DirectoryInfo]});
for($i=0;$i -lt $folders.length;$i++){
    $files=@(dir -liter $folders[$i].FullName|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
    for($j=0;$j -lt $files.length;$j++){
        write-host ($files[$j].FullName.Substring($path.length));
        $jpgfile=$files[$j].Directory.FullName+'\aa.jpg';
        [TextToImage]::Save($files[$j].FullName,$jpgfile);
    }
}COPY
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表