首页 > 其他分享 >将memo转化为JPG输出

将memo转化为JPG输出

时间:2023-08-16 17:13:25浏览次数:33  
标签:输出 Canvas end memo TForm1 JPG vBitmap vJpegImage Memo1

units1;

interface

uses
 Windows, Messages, SysUtils, Graphics, Controls, Forms, StdCtrls,
 Classes;

type
 TForm1 = class(TForm)
 Button1: TButton;
 Memo1: TMemo;

 procedure Button1Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;

var
 Form1: TForm1;

implementation
uses jpeg;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 vBitmap: TBitmap;
 vJpegImage: TJpegImage;
 vOldHeight: Integer;
begin
 Canvas.Font.Assign(Memo1.Font);
 vOldHeight := Memo1.Height;
 Memo1.ClientHeight := Canvas.TextHeight('|') * Memo1.Lines.Count + 2;
 vBitmap := TBitmap.Create;
 vJpegImage := TJpegImage.Create;
 try
 vBitmap.Height := Memo1.ClientHeight;
 vBitmap.Width := Memo1.ClientWidth;
 Memo1.PaintTo(vBitmap.Canvas, -2, -2);
 vJpegImage.Assign(vBitmap);
 vJpegImage.CompressionQuality := 75;
 vJpegImage.Compress;
 vJpegImage.SaveToFile('输出.jpg');
 //  Image1.Picture.Graphic  :=  vJpegImage;
 finally
 vBitmap.Free;
 Memo1.Height := vOldHeight;
 end;

end;

标签:输出,Canvas,end,memo,TForm1,JPG,vBitmap,vJpegImage,Memo1
From: https://www.cnblogs.com/lucken2000/p/17635609.html

相关文章

  • 显示 jpg、png、gif 图片及 gif 动画
    unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ExtCtrls;typeTForm1=class(TForm) Button1:TButton; Button2:TButton; Button3:TButton; Button4:TButton; procedureButton1Click(Sender:......
  • FP6298支持9V输出异步升压芯片,3-5V升压到5V/9V
    FP6298低噪声4.5A升压型电流模式PWM转换器。FP6298是电流模式的升压型DC-DC转换器。这是PWM电路,内置0.08Ω功率MOSFET,使该稳压器高节能。内部补偿网络也最大限度地减少了多达6个外部元件数量。误差放大器的非反相输入端连接到一个0.6V的精确的参考电压,内部软启动功能,可以减少浪涌电......
  • SocketAsyncEventArgs内存占用太大引发OutOfMemoryExceptions
    最近把一个接收socket服务端软件升级为iocp方案,其实就是换成c#的socket的异步方法,主要参考的是微软写的Server类,然后再百度找到基于这个类实现的代码来改造上线一两天后,软件崩溃了,查日志发现报了很多OutOfMemoryExceptions错误,都是在发送方法上。因为我发送方法用的SocketAsyncE......
  • OutOfMemoryError: GC Overhead Limit如何解决 Exceeded
    每次面试都会被问到JVM、内存溢出等问题。解决方案大同小异:1.Disablingtheerrorcheckaltogether,via“-XX:-UseGCOverheadLimit”.此种方式最终会改报错为java.lang.OutOfMemoryError:Javaheapspace(治标不治本)2.增大堆内存。既然堆内存少了,那就增加堆内存即可,-Xms64M-X......
  • BOSHIDA DC电源模块减小输入电源与输出负载之间的能量损失
    BOSHIDADC电源模块减小输入电源与输出负载之间的能量损失随着电子产品的普及,DC电源模块已成为现代电子设备中不可或缺的组成部分。DC电源模块可以将交流电转化为直流电,并根据需要,以适当的电压和电流提供给输出负载。然而,在输入电源和输出负载之间,存在能量损失的问题,这对于一些特......
  • MemoryFile 共享内存原理分析
    Android上层提供了一些内存共享工具类,比如MemoryFile。你使用过吗?知道它的实现原理吗?MemoryFile是Java层对Ashmem的一个封装,下面来一起学习MemoryFile,掌握它的使用姿势和底层原理。MemoryFile使用方法大致如下:「进程A中申请一块共享内存写入数据,并准备好文件描述符:」Mem......
  • 有个pil_img数据,目前我使用pil_img.save('img.jpg')保存图片,然后在使用img =open('img
    fromPILimportImageimportio#假设pillow_img是Pillow图像对象#这里使用一个示例对象,实际应根据你的数据进行替换pillow_img=Image.open('input_image.jpg')#将Pillow图像数据保存到内存中image_stream=io.BytesIO()pillow_img.save(image_stream,format='JP......
  • Python 优雅的使用 paramiko 进行交互式输入输出
    目的:需要ssh链接到Linux主机,执行telnet命令,抓回显匹配制定内容。ssh.exec_command(cmd,bufsize,timeout)#exec_command参数使用只需要执行一次的命令,因为执行完该命令以后,shell会自动回到ssh初始连接的shell状态下ssh.invoke_shell()#在SSHserver端创建一个交互式的shell,且......
  • 使用线程实现ACB的顺序输出
    在java中可以使用join方法来实现,join会阻塞当前方法,调用的当前方法执行结束后,才会继续往下执行!publicclassFoo{publicFoo(){}publicvoidA(){System.out.println("A");}publicvoidB(){System.out.println("B");}......
  • Python 优雅的使用 subprocess.Popen 获取实时输出,以及中止 subprocess
    #-*-coding:utf-8-*-importshleximportosimportsignalimporttimeimportthreadingfromsubprocessimportPopen,PIPEdefrun_command(command):process=Popen(shlex.split(command),stdout=PIPE)st=time.time()whileTrue:ou......