<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903664</guid>
        <pubDate>Thu, 25 Apr 2024 14:00:34 +0000</pubDate>
        <title>Как создать рисунок по данным из текстового файла?</title>
        <link>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903664</link>
        <description><![CDATA[Verevkin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=445030&view=findpost&p=3903661'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Katerina1993 &#064; <time class="tag-quote__quoted-time" datetime="2024-04-25T15:34:07+03:00">25.04.24, 12:34</time></span><div class='quote '>а можно вызывать Self.DrawPicture; не внутри процедуры LoadFromFile, а отдельно например</div></div><br>
Мне всё равно. Я ж тебе исходник отдал, делай с ним чо хочешь.]]></description>
        <author>Verevkin</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903661</guid>
        <pubDate>Thu, 25 Apr 2024 12:34:07 +0000</pubDate>
        <title>Как создать рисунок по данным из текстового файла?</title>
        <link>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903661</link>
        <description><![CDATA[Katerina1993: <strong class='tag-b'>Verevkin</strong>, а можно вызывать  Self.DrawPicture; не внутри процедуры LoadFromFile, а отдельно например <br>
Создается объект<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">loader:= TRGBTextLoader.Create(Image1.Picture,bmp,Memo1,0);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
а дальше вызывается.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">loader.DrawPicture;</div></ol></div></div></div></div><br>
Попробовала так сделать не получается. <br>
Свойство Objects[idx]:= TObject(NativeInt(b));, удается передать только когда DrawPicture вызывается внутри LoadFromFile.<br>
Мне нужно сделать процедуру внешней, чтобы загрузить текстовый файл один раз, а потом отдельно использовать процедуры для раскрашивания холста.]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903599</guid>
        <pubDate>Thu, 25 Apr 2024 05:49:20 +0000</pubDate>
        <title>Как создать рисунок по данным из текстового файла?</title>
        <link>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903599</link>
        <description><![CDATA[Verevkin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=445030&view=findpost&p=3903568'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Katerina1993 &#064; <time class="tag-quote__quoted-time" datetime="2024-04-24T11:36:57+00:00">24.04.24, 11:36</time></span><div class='quote '>Все правильно, так и должно быть. Там просто случайные пиксели которые нужно нарисовать. </div></div><br>
Ну предупреждать жэж надо&#33; Пришлось потерять время на проверку.<br>
Пример писал на Лазарусе. Скопипастишь там себе нужные куски.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit uData;</div><div class="code_line">&nbsp;</div><div class="code_line">{$mode ObjFPC}{$H+}</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Classes, SysUtils, Graphics;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;{ TRGBTextLoader }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TRGBTextLoader = class(TStringList)</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;LBitmap: TBitmap;</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure DrawPicture;</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;constructor Create(ABitmap: TBitmap); reintroduce;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure LoadFromFile(const FileName: string); override;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">uses LclType;</div><div class="code_line">&nbsp;</div><div class="code_line">{ TRGBTextLoader }</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TRGBTextLoader.DrawPicture;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;pbgr: &nbsp; &nbsp; PRGBTriple;</div><div class="code_line">&nbsp;&nbsp;idx: &nbsp; &nbsp; &nbsp;int32 = 0;</div><div class="code_line">&nbsp;&nbsp;row, col: int32;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if Self.Count mod 3 &#60;&#62; 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;then raise Exception.CreateFmt(&#39;Количество исходных строк (%d) некратно 3.&#39;, [Self.Count]);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;// вывод точек по ширине, пока не закончится высота</div><div class="code_line">&nbsp;&nbsp;LBitmap.Clear();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for row:= 0 to LBitmap.Height - 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if idx &#62;= Self.Count</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;then break;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;pbgr:= LBitmap.ScanLine[row];</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for col:= 0 to LBitmap.Width - 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if idx &#62;= Self.Count</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;then break;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbgr^.rgbtRed:= &nbsp; NativeInt(Self.Objects[idx + 0]) and $FF;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbgr^.rgbtGreen:= NativeInt(Self.Objects[idx + 1]) and $FF;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbgr^.rgbtBlue:= &nbsp;NativeInt(Self.Objects[idx + 2]) and $FF;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;inc(pbgr);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;inc(idx, 3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">constructor TRGBTextLoader.Create(ABitmap: TBitmap);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;assert(assigned(ABitmap));</div><div class="code_line">&nbsp;&nbsp;inherited Create();</div><div class="code_line">&nbsp;&nbsp;LBitmap:= ABitmap;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TRGBTextLoader.LoadFromFile(const FileName: string);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;idx, b: int32;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;inherited LoadFromFile(FileName);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for idx:= 0 to Self.Count - 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if not TryStrToInt(Self[idx], b) or not (b in [0..255])</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;then raise Exception.CreateFmt(&#39;Ошибка преобразования, строка %d.&#39;, [idx]);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Objects[idx]:= TObject(NativeInt(b));</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Self.DrawPicture();</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TFormMain.FormCreate(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;loader: TRGBTextLoader;</div><div class="code_line">&nbsp;&nbsp;bmp: TBitmap;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;bmp:= TBitmap.Create();</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;bmp.PixelFormat:= pf24bit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;bmp.SetSize(Image.Width, Image.Height);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;loader:= TRGBTextLoader.Create(bmp);</div><div class="code_line">&nbsp;&nbsp; &nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;loader.LoadFromFile(&#39;data11.txt&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;except on e: Exception do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Application.MessageBox(&#39;Ошибка&#39;, PChar(e.Message), MB_ICONSTOP or MB_OK);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;loader.Free();</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Image.Picture.Assign(bmp);</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;bmp.Free();</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<span class="b-attach" data-size="66628" data-hits="89" data-attach-id="65780" data-attach-post-id="3903599">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3903599&amp;attach_id=65780' title='Скачать файл' target='_blank'>445030.7z</a> (, : 89)
		</span>]]></description>
        <author>Verevkin</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903568</guid>
        <pubDate>Wed, 24 Apr 2024 11:36:57 +0000</pubDate>
        <title>Как создать рисунок по данным из текстового файла?</title>
        <link>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903568</link>
        <description><![CDATA[Katerina1993: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>У тебя там нормальная картинка или какой-то рандомный набор пикселей?<br>
А то вот так выглядит:</div></div><br>
Все правильно, так и должно быть. Там просто случайные пиксели которые нужно нарисовать.]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903527</guid>
        <pubDate>Wed, 24 Apr 2024 06:38:25 +0000</pubDate>
        <title>Как создать рисунок по данным из текстового файла?</title>
        <link>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903527</link>
        <description><![CDATA[Verevkin: У тебя там нормальная картинка или какой-то рандомный набор пикселей?<br>
А то вот так выглядит:<br>
<br>
<img class='tag-img' src='https://i.postimg.cc/bNtBgjnZ/001770.png' alt='user posted image'><br>
<span class="b-attach" data-size="26846" data-hits="113" data-attach-id="65774" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=65774' title='Скачать файл' target='_blank'>001770.png</a> (, : 113)
		</span>]]></description>
        <author>Verevkin</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903505</guid>
        <pubDate>Tue, 23 Apr 2024 13:50:28 +0000</pubDate>
        <title>Как создать рисунок по данным из текстового файла?</title>
        <link>https://forum.sources.ru/index.php?showtopic=445030&amp;view=findpost&amp;p=3903505</link>
        <description><![CDATA[Katerina1993: В текстовом файле записано цифры. Каждая цифра с новой строки. Цифры означают RGB.  У меня холст 100 на 100 пикселей, 10000 пикселей, умножаем на 3 (RGB). Получается 30000 цифр RGB. Столько значений у меня хранятся в текстовом файле в столбик. Ориентируясь по этим данным нужно нарисовать картинку на компоненте Image. Т.е. берем первые три строки в текстовом файле рисуем пиксель, следующие три строки рисуем пиксель по соседству в линии(горизонтали), пока полностью не нарисуем линию и переходим к следующей линий и так пока картинка не будет готова. Загрузку файлов я уже сделала и записала в массив.<br>
Пример кода и исходники где есть текстовый файл. <span class="b-attach" data-size="40627" data-hits="6" data-attach-id="65771" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=65771' title='Скачать файл' target='_blank'>Ex2.zip</a> (, : 6)
		</span><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit Unit1;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;Dialogs, StdCtrls, ExtCtrls;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TDynamicArrayOfIntegers = array of Integer;</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Memo1: TMemo;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Image1: TImage;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Memo2: TMemo;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormShow(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Private declarations }</div><div class="code_line">&nbsp;&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ Public declarations }</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">function LoadFromFile(const fname: String; lines: TStrings): TDynamicArrayOfIntegers;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;I: Integer;</div><div class="code_line">&nbsp;&nbsp;FileDir:String;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;FileDir:=fname;</div><div class="code_line">&nbsp;&nbsp;if FileExists(FileDir) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;lines.LoadFromFile(FileDir);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(Result, lines.Count);</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i := 0 to lines.Count - 1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result[i] := StrToIntDef(lines[i], 0);</div><div class="code_line">&nbsp;&nbsp;end else Result := nil;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormShow(Sender: TObject);</div><div class="code_line">var str:TDynamicArrayOfIntegers; y:Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;str:=LoadFromFile(&#39;data11.txt&#39;, Memo1.Lines);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for y := 0 to High(str) do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Memo2.Lines.Add(IntToStr(y mod 3));</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	